Java 如何在php中读取字节数组

Java 如何在php中读取字节数组,java,php,Java,Php,我正在使用以下代码向服务器发送一个mp3文件。在服务器中,我需要一个php代码来接收mp3的字节数组,并将其转换为文件并存储在那里 try { final ByteArrayOutputStream out = new ByteArrayOutputStream(); File file = new File(Environment.getExternalStorageDirectory()+ "/my.mp3"); final InputStream in = new

我正在使用以下代码向服务器发送一个mp3文件。在服务器中,我需要一个php代码来接收mp3的字节数组,并将其转换为文件并存储在那里

try {
    final ByteArrayOutputStream out = new ByteArrayOutputStream();
    File file = new File(Environment.getExternalStorageDirectory()+ "/my.mp3");
    final InputStream in = new FileInputStream(file);
    final byte[] buf = new byte[2048];
    int n;
    while ((n = in.read(buf)) >= 0) {
        out.write(buf, 0, n);
    }
    final byte[] data = out.toByteArray();
    String urlString = "http://10.0.0.56/upload.php";
    HttpPost postRequest = new HttpPost(urlString);
    postRequest.setEntity(new ByteArrayEntity(data));
    HttpClient client = new DefaultHttpClient();
    HttpResponse response = client.execute(postRequest);
    HttpEntity entity = response.getEntity();
    InputStream ins = entity.getContent();
    BufferedReader br = new BufferedReader(new InputStreamReader(ins));
    String temp_str;
    StringBuilder sb = new StringBuilder();
    while((temp_str = br.readLine()) != null) {
        sb.append(temp_str);
    }
    Log.e("response", sb.toString());
} catch (Exception e) {
    // handle exception here
    Log.e(e.getClass().getName(), e.getMessage());
    return "exception";
}

任何人都知道如何使用php读取mp3文件。

您的upload.php可能是这样的:

$mp3_bin = file_get_contents('php://input');
file_put_contents( '/path/to/my/mp3', $mp3_bin );
又短又甜;)

编辑:


您的upload.php可能如下所示:

$mp3_bin = file_get_contents('php://input');
file_put_contents( '/path/to/my/mp3', $mp3_bin );
又短又甜;)

编辑:


您应该能够在$u POST变量中找到数据。如果您能够用Java编写此代码,用php打开二进制文件,编写并保存它对您来说应该不是问题。@Buksy我对php不太熟悉。我是一个java和android的家伙。我搜索了很多,但没有找到任何直接读取音频文件的帖子。我得到的帖子是读取图像而不是音频文件。y。您应该能够在$\u post变量中找到数据。如果你能用Java编写这段代码,用php打开二进制文件,然后编写并保存它,对你来说应该不会有问题。@Buksy我对php不太熟悉。我是一个Java和android的家伙。我搜索了很多,但没有找到任何直接读取音频文件的帖子。我得到的帖子是读取图像而不是音频文件。y.So。。基本上,文件\u get\u contents()正在读取原始HTTP POST数据,而文件\u put\u contents()正在将原始内容保存到文件中。因为您为文件\u put\u contents指定了类似于目录的内容。。改为给它一个文件;)查看我编辑的评论。现在我创建了该文件,但仍然无法工作:(.plz do something.boss在我头上跳舞。这不起作用的唯一原因是文件权限..您的httpd用户是否具有写入权限到您尝试写入的目录和文件?否则(通常情况下)尝试写入/tmp/my.mp3,因为/tmp通常对任何用户都是打开的。因此..基本上,文件\u get\u contents()正在读取原始HTTP POST数据,而文件\u put\u contents()正在将原始内容保存到文件中。因为您为文件\u put\u contents指定了类似于目录的内容..因此改为为为给它一个文件;)查看我编辑的评论。现在我创建了该文件,但仍然无法工作:(.plz do something.boss在我头上跳舞。这不起作用的唯一原因是文件权限..您的httpd用户是否具有写入权限到您尝试写入的目录和文件?否则(通常情况下)尝试写入/tmp/my.mp3,因为/tmp通常对任何用户都是打开的。