android enviar archivo de vídeo (mp4) a php servidor

OK chicos este es mi último recurso, estoy tratando de enviar un archivo de vídeo para ser guardado en un servidor, pero no tienen idea de cómo hacerlo. Este es el código que he estado utilizando hasta ahora para realizar solicitudes:

private class DownloadWebpageTask extends AsyncTask<String, String, String> { @Override protected String doInBackground(String... urls) { HttpURLConnection conn = null; BufferedReader reader = null; try{ String query = urls[0]; URL url = new URL(getData); conn = (HttpURLConnection) url.openConnection(); conn.setReadTimeout(10000 /* milliseconds */); conn.setConnectTimeout(15000 /* milliseconds */); conn.setRequestMethod("POST"); conn.setDoInput(true); conn.setDoOutput(true); Writer writer = new OutputStreamWriter(conn.getOutputStream()); writer.write(query); writer.flush(); writer.close(); conn.connect(); InputStream is = conn.getInputStream(); reader = new BufferedReader(new InputStreamReader(is)); StringBuffer sb = new StringBuffer(); String line = ""; while((line = reader.readLine()) != null){ sb.append(line); } return sb.toString(); }catch (MalformedURLException e){ e.printStackTrace(); } catch (IOException e){ e.printStackTrace(); } return null; } @Override protected void onPostExecute(String result){ try{ JSONObject results = new JSONObject(result); JSONArray jr = results.getJSONArray("info"); .................... }catch(JSONException e){ e.printStackTrace(); } } } 

Por favor, ¿puede ayudarme a personalizar esta secuencia de comandos para enviar un gran archivo mp4 y si es posible agregar su contrapartida php. He encontrado algunos scripts en línea de una pregunta similar, pero no funcionó para mí en su lugar dio una excepción outOfMemory aquí es

 private class VidUploadWebpageTask extends AsyncTask<String, String, String> { @Override protected String doInBackground(String... urls) { HttpURLConnection connection = null; DataOutputStream outputStream = null; File cheak = new File(Environment.getExternalStorageDirectory().getPath() + "/Movies/ReallyChat/Lamlam.mp4"); String pathOfYourFile = "android.resource://" + getPackageName() + "/" + R.raw.countdown; String urlServer = "http://www.gogodis.comxa.com/vid.php?"; String lineEnd = "\r\n"; String twoHyphens = "--"; String boundary = "*****"; int bytesRead, bytesAvailable, bufferSize; byte[] buffer; int maxBufferSize = 1*1024*1024; BufferedReader reader = null; try{ FileInputStream fileInputStream = new FileInputStream(cheak); URL url = new URL(urlServer); connection = (HttpURLConnection) url.openConnection(); // Allow Inputs & Outputs connection.setDoInput(true); connection.setDoOutput(true); connection.setUseCaches(false); // Enable POST method connection.setRequestMethod("POST"); connection.setRequestProperty("Connection", "Keep-Alive"); connection.setRequestProperty("Content-Type", "multipart/form-data;boundary"); outputStream = new DataOutputStream( connection.getOutputStream() ); outputStream.writeBytes(twoHyphens + boundary + lineEnd); outputStream.writeBytes("Content-Disposition: form-data; name=\"uploadedfile\";filename=\"" + pathOfYourFile ); outputStream.writeBytes(lineEnd); bytesAvailable = fileInputStream.available(); bufferSize = Math.min(bytesAvailable, maxBufferSize); buffer = new byte[bufferSize]; // Read file bytesRead = fileInputStream.read(buffer, 0, bufferSize); while(bytesRead > 0){ outputStream.write(buffer, 0, bufferSize); bytesAvailable = fileInputStream.available(); bufferSize = Math.min(bytesAvailable, maxBufferSize); bytesRead = fileInputStream.read(buffer, 0, bufferSize); } outputStream.writeBytes(lineEnd); outputStream.writeBytes(twoHyphens + boundary + twoHyphens + lineEnd); // Responses from the server (code and message) int serverResponseCode = connection.getResponseCode(); String serverResponseMessage = connection.getResponseMessage(); Log.d("ServerCode", "" + serverResponseCode); Log.d("serverResponseMessage",""+serverResponseMessage); fileInputStream.close(); outputStream.flush(); outputStream.close(); } catch(Exception ex){ ex.printStackTrace(); } return null; } @Override protected void onPostExecute(String result){ System.out.println("ok "+result); try{ JSONObject results = new JSONObject(result); JSONArray jr = results.getJSONArray("info"); for(int i = 0; i < jr.length(); i++){ JSONObject set = jr.getJSONObject(i); } }catch(JSONException e){ e.printStackTrace(); } } } 

y aquí estaba el reparto

 01-21 09:55:40.742 21418-21418/? D/dalvikvm: Late-enabling CheckJNI 01-21 09:55:41.113 21418-21418/com.reallyChat I/dalvikvm: Could not find method android.content.res.TypedArray.getChangingConfigurations, referenced from method android.support.v7.internal.widget.TintTypedArray.getChangingConfigurations 01-21 09:55:41.113 21418-21418/com.reallyChat W/dalvikvm: VFY: unable to resolve virtual method 410: Landroid/content/res/TypedArray;.getChangingConfigurations ()I 01-21 09:55:41.113 21418-21418/com.reallyChat D/dalvikvm: VFY: replacing opcode 0x6e at 0x0002 01-21 09:55:41.113 21418-21418/com.reallyChat I/dalvikvm: Could not find method android.content.res.TypedArray.getType, referenced from method android.support.v7.internal.widget.TintTypedArray.getType 01-21 09:55:41.113 21418-21418/com.reallyChat W/dalvikvm: VFY: unable to resolve virtual method 432: Landroid/content/res/TypedArray;.getType (I)I 01-21 09:55:41.113 21418-21418/com.reallyChat D/dalvikvm: VFY: replacing opcode 0x6e at 0x0002 01-21 09:55:41.113 21418-21418/com.reallyChat I/dalvikvm: Could not find method android.content.res.Resources.getDrawable, referenced from method android.support.v7.internal.widget.ResourcesWrapper.getDrawable 01-21 09:55:41.113 21418-21418/com.reallyChat W/dalvikvm: VFY: unable to resolve virtual method 373: Landroid/content/res/Resources;.getDrawable (ILandroid/content/res/Resources$Theme;)Landroid/graphics/drawable/Drawable; 01-21 09:55:41.113 21418-21418/com.reallyChat D/dalvikvm: VFY: replacing opcode 0x6e at 0x0002 01-21 09:55:41.113 21418-21418/com.reallyChat I/dalvikvm: Could not find method android.content.res.Resources.getDrawableForDensity, referenced from method android.support.v7.internal.widget.ResourcesWrapper.getDrawableForDensity 01-21 09:55:41.113 21418-21418/com.reallyChat W/dalvikvm: VFY: unable to resolve virtual method 375: Landroid/content/res/Resources;.getDrawableForDensity (IILandroid/content/res/Resources$Theme;)Landroid/graphics/drawable/Drawable; 01-21 09:55:41.113 21418-21418/com.reallyChat D/dalvikvm: VFY: replacing opcode 0x6e at 0x0002 01-21 09:55:41.233 21418-21448/com.reallyChat I/System.out: /storage/emulated/0/Movies/ReallyChat/Lamlam.mp4 01-21 09:55:41.233 21418-21448/com.reallyChat I/System.out: okkkkkkkk working 01-21 09:55:41.293 21418-21418/com.reallyChat D/dalvikvm: GC_FOR_ALLOC freed 272K, 19% free 9111K/11220K, paused 18ms, total 18ms 01-21 09:55:41.293 21418-21418/com.reallyChat I/dalvikvm-heap: Grow heap (frag case) to 11.219MB for 562516-byte allocation 01-21 09:55:41.313 21418-21427/com.reallyChat D/dalvikvm: GC_FOR_ALLOC freed 6K, 18% free 9654K/11772K, paused 14ms, total 14ms 01-21 09:55:41.343 21418-21421/com.reallyChat E/dalvikvm: adjustAdaptiveCoef max=4194304, min=1048576, ut=568 01-21 09:55:41.343 21418-21421/com.reallyChat D/dalvikvm: GC_CONCURRENT freed <1K, 18% free 9852K/11972K, paused 3ms+1ms, total 24ms 01-21 09:55:41.343 21418-21418/com.reallyChat D/dalvikvm: WAIT_FOR_CONCURRENT_GC blocked 9ms 01-21 09:55:41.353 21418-21418/com.reallyChat E/dalvikvm: adjustAdaptiveCoef max=6291456, min=1572864, ut=368 01-21 09:55:41.353 21418-21418/com.reallyChat D/dalvikvm: GC_FOR_ALLOC freed 441K, 21% free 9855K/12416K, paused 14ms, total 14ms 01-21 09:55:41.383 21418-21418/com.reallyChat E/dalvikvm: adjustAdaptiveCoef max=8388608, min=2097152, ut=256 01-21 09:55:41.383 21418-21418/com.reallyChat D/dalvikvm: GC_FOR_ALLOC freed <1K, 20% free 10754K/13320K, paused 13ms, total 14ms 01-21 09:55:41.433 21418-21418/com.reallyChat E/dalvikvm: adjustAdaptiveCoef max=8388608, min=2097152, ut=256 01-21 09:55:41.433 21418-21418/com.reallyChat D/dalvikvm: GC_FOR_ALLOC freed 902K, 20% free 13886K/17356K, paused 16ms, total 16ms 01-21 09:55:41.533 21418-21418/com.reallyChat D/libEGL: loaded /vendor/lib/egl/libGLES_vc4.so 01-21 09:55:41.553 21418-21448/com.reallyChat E/dalvikvm: adjustAdaptiveCoef max=8388608, min=2097152, ut=256 01-21 09:55:41.553 21418-21448/com.reallyChat D/dalvikvm: GC_FOR_ALLOC freed 998K, 21% free 17210K/21608K, paused 22ms, total 22ms 01-21 09:55:41.563 21418-21448/com.reallyChat I/dalvikvm-heap: Grow heap (frag case) to 24.592MB for 6291706-byte allocation 01-21 09:55:41.593 21418-21418/com.reallyChat D/dalvikvm: GC_FOR_ALLOC freed 2048K, 24% free 21305K/27756K, paused 25ms, total 25ms 01-21 09:55:41.593 21418-21418/com.reallyChat W/khrn_client: init_window num_buffers 3 min undequeued buffers 1 01-21 09:55:41.593 21418-21418/com.reallyChat W/khrn_client: init_window window 0x4d2aeeb0, 480x800 hintTransform 0x0 do_pre 1 01-21 09:55:41.643 21418-21418/com.reallyChat D/OpenGLRenderer: Enabling debug mode 0 01-21 09:55:41.723 21418-21448/com.reallyChat D/dalvikvm: GC_FOR_ALLOC freed 1K, 24% free 21307K/27756K, paused 15ms, total 16ms 01-21 09:55:41.763 21418-21448/com.reallyChat I/dalvikvm-heap: Grow heap (frag case) to 36.593MB for 14680314-byte allocation 01-21 09:55:41.813 21418-21427/com.reallyChat D/dalvikvm: GC_FOR_ALLOC freed 6144K, 30% free 29499K/42096K, paused 48ms, total 48ms 01-21 09:55:41.853 21418-21421/com.reallyChat D/dalvikvm: GC_CONCURRENT freed <1K, 30% free 29509K/42096K, paused 4ms+14ms, total 40ms 01-21 09:55:42.104 21418-21448/com.reallyChat E/dalvikvm: adjustAdaptiveCoef max=4194304, min=1048576, ut=568 01-21 09:55:42.114 21418-21448/com.reallyChat D/dalvikvm: GC_FOR_ALLOC freed <1K, 30% free 29509K/42096K, paused 21ms, total 26ms 01-21 09:55:42.114 21418-21448/com.reallyChat I/dalvikvm-heap: Forcing collection of SoftReferences for 31457530-byte allocation 01-21 09:55:42.144 21418-21448/com.reallyChat E/dalvikvm: adjustAdaptiveCoef max=6291456, min=1572864, ut=368 01-21 09:55:42.154 21418-21448/com.reallyChat D/dalvikvm: GC_BEFORE_OOM freed 9K, 30% free 29499K/42096K, paused 33ms, total 35ms 01-21 09:55:42.154 21418-21448/com.reallyChat E/dalvikvm-heap: Out of memory on a 31457530-byte allocation. 01-21 09:55:42.154 21418-21448/com.reallyChat I/dalvikvm: "AsyncTask #1" prio=5 tid=11 RUNNABLE 01-21 09:55:42.154 21418-21448/com.reallyChat I/dalvikvm: | group="main" sCount=0 dsCount=0 obj=0x41984a50 self=0x4d2ae330 01-21 09:55:42.154 21418-21448/com.reallyChat I/dalvikvm: | sysTid=21448 nice=10 sched=0/0 cgrp=apps/bg_non_interactive handle=1075400208 01-21 09:55:42.154 21418-21448/com.reallyChat I/dalvikvm: | state=R schedstat=( 0 0 0 ) utm=13 stm=12 core=1 01-21 09:55:42.154 21418-21448/com.reallyChat I/dalvikvm: at java.io.ByteArrayOutputStream.expand(ByteArrayOutputStream.java:~91) 01-21 09:55:42.154 21418-21448/com.reallyChat I/dalvikvm: at java.io.ByteArrayOutputStream.write(ByteArrayOutputStream.java:201) 01-21 09:55:42.154 21418-21448/com.reallyChat I/dalvikvm: at libcore.net.http.RetryableOutputStream.write(RetryableOutputStream.java:61) 01-21 09:55:42.154 21418-21448/com.reallyChat I/dalvikvm: at java.io.DataOutputStream.write(DataOutputStream.java:98) 01-21 09:55:42.174 21418-21448/com.reallyChat I/dalvikvm: at com.really_chat.results$VidUploadWebpageTask.doInBackground(results.java:505) 01-21 09:55:42.174 21418-21448/com.reallyChat I/dalvikvm: at com.really_chat.results$VidUploadWebpageTask.doInBackground(results.java:443) 01-21 09:55:42.174 21418-21448/com.reallyChat I/dalvikvm: at android.os.AsyncTask$2.call(AsyncTask.java:287) 01-21 09:55:42.184 21418-21448/com.reallyChat I/dalvikvm: at java.util.concurrent.FutureTask.run(FutureTask.java:234) 01-21 09:55:42.184 21418-21448/com.reallyChat I/dalvikvm: at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230) 01-21 09:55:42.184 21418-21448/com.reallyChat I/dalvikvm: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080) 01-21 09:55:42.184 21418-21448/com.reallyChat I/dalvikvm: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573) 01-21 09:55:42.184 21418-21448/com.reallyChat I/dalvikvm: at java.lang.Thread.run(Thread.java:856) 01-21 09:55:42.194 21418-21448/com.reallyChat W/dalvikvm: threadid=11: thread exiting with uncaught exception (group=0x40ef2930) 01-21 09:55:42.194 21418-21448/com.reallyChat E/AndroidRuntime: FATAL EXCEPTION: AsyncTask #1 java.lang.RuntimeException: An error occured while executing doInBackground() at android.os.AsyncTask$3.done(AsyncTask.java:299) at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:352) at java.util.concurrent.FutureTask.setException(FutureTask.java:219) at java.util.concurrent.FutureTask.run(FutureTask.java:239) at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573) at java.lang.Thread.run(Thread.java:856) Caused by: java.lang.OutOfMemoryError at java.io.ByteArrayOutputStream.expand(ByteArrayOutputStream.java:91) at java.io.ByteArrayOutputStream.write(ByteArrayOutputStream.java:201) at libcore.net.http.RetryableOutputStream.write(RetryableOutputStream.java:61) at java.io.DataOutputStream.write(DataOutputStream.java:98) at com.really_chat.results$VidUploadWebpageTask.doInBackground(results.java:505) at com.really_chat.results$VidUploadWebpageTask.doInBackground(results.java:443) at android.os.AsyncTask$2.call(AsyncTask.java:287) at java.util.concurrent.FutureTask.run(FutureTask.java:234) at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573) at java.lang.Thread.run(Thread.java:856) 01-21 09:55:42.234 21418-21448/com.reallyChat I/Process: Sending signal. PID: 21418 SIG: 9 

Muchas gracias de antemano, sé que esto es mucho que pedir, pero estoy desesperado

2 Solutions collect form web for “android enviar archivo de vídeo (mp4) a php servidor”

Le sugiero que utilice la biblioteca Koush / Ion.

https://github.com/koush/ion

con esto fácilmente logré subir imagen al servidor, el video no debe ser muy diferente

usted debe hacer multipart / file request

 Ion.with(YourActivity.this) .load(getString(R.string.uploadURL)) .uploadProgressHandler(new ProgressCallback() { @Override public void onProgress(long uploaded, long total) { // Displays the progress bar for the first time. } }) .addHeader("Authorization","bearer "+bearer) .setTimeout(60 * 60 * 1000) .setMultipartFile("upload", "image/jpeg", file) .asJsonObject() // run a callback on completion .setCallback(new FutureCallback<JsonObject>() { @Override public void onCompleted(Exception e, JsonObject result) { // When the loop is finished, updates the notification if (e != null) { Log.d("ImageUpload",result.toString()); Toast.makeText(CreateViolation.this, "Error uploading file", Toast.LENGTH_LONG).show(); return; } imageURL =result.get("files").getAsJsonArray().get(0).getAsJsonObject().get("url").getAsString(); Toast.makeText(CreateViolation.this, "File upload complete", Toast.LENGTH_LONG).show(); } }); 

Trate de usar este enlace que sube la imagen, así como el vídeo al servidor. También puede obtener código php …

  • Evitar duplicar la entrada en la base de datos sqllite android
  • Convierta un sitio web con un diseño de respuesta a la aplicación de Android
  • Verificar la firma SHA1withRSA generada en Java (Android) con phpseclib
  • CCAvenue Android Integration
  • ¿Cómo puedo enviar una notificación de Firebase Cloud Messaging sin utilizar Firebase Console?
  • Cómo hacer que Android y Arduino se comuniquen sin un módulo inalámbrico
  • Encriptación AES 128 en Java Descifrado en PHP
  • La aplicación para Android publica everyThing excepto el archivo publicado
  • Envío de "alerta / notificación" al teléfono celular desde el sitio web
  • Cómo rastrear / depurar este error SOAP => parece que no tenemos ningún documento XML
  • Detectar navegador de aplicaciones (WebView) con PHP / Javascript
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.