Java 如何在php中读取字节数组
我正在使用以下代码向服务器发送一个mp3文件。在服务器中,我需要一个php代码来接收mp3的字节数组,并将其转换为文件并存储在那里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
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通常对任何用户都是打开的。