В соответствии с этим ответом «Android загружает видео на удаленный сервер с использованием данных многострочной формы HTTP» Я делаю все шаги.
Но я не знаю, как я кодирую серверную сторону! Я имею в виду простую страницу PHP, которая служит моей загруженной команде.
И еще один вопрос: YOUR_URL (третья строка следующего фрагмента) должен быть адресом этой страницы PHP?
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( ); }
Этот код работал правильно, и PHP-код, который я должен использовать, прост как это:
<?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"; } ?>
Обратите внимание, что videoFile должен точно совпадать с
reqEntity.addPart("videoFile", filebodyVideo);
И главная проблема, с которой вы, вероятно, сталкиваетесь, – это значение по умолчанию post_max_size
и upload_max_filesize
в конфигурации сервера! По умолчанию слишком мало, и когда вы пытаетесь загрузить большие файлы, PHP-скрипт возвращается: «upload_fail_php_file» без каких-либо ошибок или исключения. Поэтому не забудьте установить эти значения как большие, как достаточно …
Наслаждайтесь кодированием.