这是我的代码
private Boolean doFileUpload() {
HttpEntity resEntity;
String urlString = "http://192.168.1.112/johnson/learn/android/index2.php";
try {
HttpClient client = new DefaultHttpClient();
HttpPost post = new HttpPost(urlString);
FileBody bin1 = new FileBody(file1);
FileBody bin2 = new FileBody(file2);
MultipartEntity reqEntity = new MultipartEntity();
reqEntity.addPart("uploadedfile1", bin1);
reqEntity.addPart("uploadedfile2", bin2);
reqEntity.addPart("user", new StringBody("User"));
post.setEntity(reqEntity);
HttpResponse response = client.execute(post);
resEntity = response.getEntity();
final String response_str = EntityUtils.toString(resEntity);
if (resEntity != null) {
Log.i("RESPONSE", response_str);
runOnUiThread(new Runnable() {
public void run() {
try {
showToast("Upload Complete. Check the server uploads directory.");
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
} catch (Exception ex) {
Log.e("Debug", "error: " + ex.getMessage(), ex);
}
return true;
}
当我上传大约2MB的文件时它可以工作,但是当我上传20 + MB文件时出错 谁知道错误在哪里? (错误=数据未上传,但已声明已上传)
它表示上传成功。
我的Logcat
08-24 13:27:15.725: D/dalvikvm(4221): GC_CONCURRENT freed 324K, 5% free 9538K/9991K, paused 0ms+0ms
08-24 13:27:18.417: I/RESPONSE(4221): <br />
08-24 13:27:18.417: I/RESPONSE(4221): <b>Notice</b>: Undefined index: uploadedfile1 in <b>C:\xampp\htdocs\Johnson\Learn\android\index2.php</b> on line <b>6</b><br />
08-24 13:27:18.417: I/RESPONSE(4221): <br />
08-24 13:27:18.417: I/RESPONSE(4221): <b>Notice</b>: Undefined index: uploadedfile1 in <b>C:\xampp\htdocs\Johnson\Learn\android\index2.php</b> on line <b>7</b><br />
08-24 13:27:18.417: I/RESPONSE(4221): There was an error uploading the file, please try again!<br />
08-24 13:27:18.417: I/RESPONSE(4221): <b>Notice</b>: Undefined index: uploadedfile1 in <b>C:\xampp\htdocs\Johnson\Learn\android\index2.php</b> on line <b>12</b><br />
08-24 13:27:18.417: I/RESPONSE(4221): filename: target_path: uploads/<br />
08-24 13:27:18.417: I/RESPONSE(4221): <b>Notice</b>: Undefined index: uploadedfile2 in <b>C:\xampp\htdocs\Johnson\Learn\android\index2.php</b> on line <b>16</b><br />
08-24 13:27:18.417: I/RESPONSE(4221): <br />
08-24 13:27:18.417: I/RESPONSE(4221): <b>Notice</b>: Undefined index: uploadedfile2 in <b>C:\xampp\htdocs\Johnson\Learn\android\index2.php</b> on line <b>17</b><br />
08-24 13:27:18.417: I/RESPONSE(4221): There was an error uploading the file, please try again!<br />
08-24 13:27:18.417: I/RESPONSE(4221): <b>Notice</b>: Undefined index: uploadedfile2 in <b>C:\xampp\htdocs\Johnson\Learn\android\index2.php</b> on line <b>22</b><br />
08-24 13:27:18.417: I/RESPONSE(4221): filename: target_path2: uploads/<br />
08-24 13:27:18.417: I/RESPONSE(4221): <b>Notice</b>: Undefined index: user in <b>C:\xampp\htdocs\Johnson\Learn\android\index2.php</b> on line <b>26</b><br />
08-24 13:27:18.417: I/RESPONSE(4221): n String Parameter send from client side :
这是我的PHP脚本
<?php
$target_path1 = "uploads/";
$target_path2 = "uploads/";
/* Add the original filename to our target path.
Result is "uploads/filename.extension" */
$target_path1 = $target_path1 . basename( $_FILES['uploadedfile1']['name']);
if(move_uploaded_file($_FILES['uploadedfile1']['tmp_name'], $target_path1)) {
echo "The first file ". basename( $_FILES['uploadedfile1']['name']).
" has been uploaded.";
} else{
echo "There was an error uploading the file, please try again!";
echo "filename: " . basename( $_FILES['uploadedfile1']['name']);
echo "target_path: " .$target_path1;
}
$target_path2 = $target_path2 . basename( $_FILES['uploadedfile2']['name']);
if(move_uploaded_file($_FILES['uploadedfile2']['tmp_name'], $target_path2)) {
echo "n The second file ". basename( $_FILES['uploadedfile2']['name']).
" has been uploaded.";
} else{
echo "There was an error uploading the file, please try again!";
echo "filename: " . basename( $_FILES['uploadedfile2']['name']);
echo "target_path2: " .$target_path2;
}
$user = $_REQUEST['user'];
echo "n String Parameter send from client side : " . $user;
?>
答案 0 :(得分:1)
在这两种情况下,您的文件很可能都已正确上传。但目标URL是PHP脚本。 PHP有一个限制(可以在PHP选项中设置)它在帖子中接受多少数据(不记得默认值,但它非常低)。
调查脚本可以接受的数据量。