我有以下代码从手机向服务器发送文件(mpeg文件 - 大约20kb)。但是,它在服务器端失败了。任何人都可以告诉我我在客户端犯的错误是什么?感谢。
ByteArrayOutputStream bos = new ByteArrayOutputStream();
//bm.compress(CompressFormat.JPEG, 75, bos);
byte[] data = bos.toByteArray();
HttpClient httpClient = new DefaultHttpClient();
HttpPost postRequest = new HttpPost("http://example.com/upload.php");
File file= new File("/mnt/sdcard/enca/aha.mpeg");
FileBody bin = new FileBody(file);
MultipartEntity reqEntity = new MultipartEntity(HttpMultipartMode.BROWSER_COMPATIBLE);
reqEntity.addPart("uploaded", bin);
reqEntity.addPart("random", new StringBody(encameo1.random));
reqEntity.addPart("fingerPrint", new StringBody(encameo1.fingerprint));
postRequest.setEntity(reqEntity);
HttpResponse response = httpClient.execute(postRequest);
BufferedReader reader = new BufferedReader(new InputStreamReader(response.getEntity().getContent(), "UTF-8"));
String sResponse;
StringBuilder s = new StringBuilder();
while ((sResponse = reader.readLine()) != null) {
s = s.append(sResponse);
}
System.out.println("Response: " + s);
php代码:
<?php
$target_path = "uploaded_files/";
$target_path = $target_path . basename( $_FILES['userfile']['name']);
if(move_uploaded_file($_FILES['userfile']['tmp_name'], $target_path))
{
echo "The file ". basename( $_FILES['userfile']['name'])." has been uploaded";
}
else
{
echo "There was an error uploading the file, please try again!";
}
?>
答案 0 :(得分:4)
您正在发送名为uploaded
的部分:
reqEntity.addPart("uploaded", bin);
但是,PHP期望名为userfile
的部分:
if(move_uploaded_file($_FILES['userfile']['tmp_name'], $target_path))
将它对齐。