问题
According this answer "Android upload video to remote server using HTTP multipart form data" I do all steps.
But I don't know how I code for server side! I mean a PHP simple page that serve my reauest foe upload.
And another question is that : YOUR_URL (3rd line of following snippet) must be address of that PHP page?
private void uploadVideo(String videoPath) throws ParseException, IOException {
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost(YOUR_URL);
FileBody filebodyVideo = new FileBody(new File(videoPath));
StringBody title = new StringBody("Filename: " + videoPath);
StringBody description = new StringBody("This is a description of the video");
MultipartEntity reqEntity = new MultipartEntity();
reqEntity.addPart("videoFile", filebodyVideo);
reqEntity.addPart("title", title);
reqEntity.addPart("description", description);
httppost.setEntity(reqEntity);
// DEBUG
System.out.println( "executing request " + httppost.getRequestLine( ) );
HttpResponse response = httpclient.execute( httppost );
HttpEntity resEntity = response.getEntity( );
// DEBUG
System.out.println( response.getStatusLine( ) );
if (resEntity != null) {
System.out.println( EntityUtils.toString( resEntity ) );
} // end if
if (resEntity != null) {
resEntity.consumeContent( );
} // end if
httpclient.getConnectionManager( ).shutdown( );
}
回答1:
This code worked properly and PHP code I should use is as simple as this:
<?php
$file_path = "uploads/";
$file_path = $file_path . basename( $_FILES['videoFile']['name']);
if(move_uploaded_file($_FILES['videoFile']['tmp_name'], $file_path)) {
echo "success";
} else{
echo "upload_fail_php_file";
}
?>
NOTE that videoFile must match exactly with
reqEntity.addPart("videoFile", filebodyVideo);
And the MOST Important problem you probably face to, is default value of post_max_size and upload_max_filesize in the server config! As default is too small and when you try to upload large files, the PHP script return : "upload_fail_php_file" with no error or exception throwing. So remember to set these values as big as enough...
Enjoy coding.
来源:https://stackoverflow.com/questions/23504191/android-upload-large-files-using-multipartentity