Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>Did you try using </p> <pre><code>con.setChunkedStreamingMode(1024); </code></pre> <p>This will help you to chunk your data into specific size, so that you need not keep your entire file in the memory.</p> <p><strong>UPDATE:</strong></p> <p>Try using the below method. I use this method to upload a 80 mb file without Exception. </p> <pre><code>public String sendFileToServer(String filename, String targetUrl) { String response = "error"; Log.e("Image filename", filename); Log.e("url", targetUrl); HttpURLConnection connection = null; DataOutputStream outputStream = null; // DataInputStream inputStream = null; String pathToOurFile = filename; String urlServer = targetUrl; String lineEnd = "\r\n"; String twoHyphens = "--"; String boundary = "*****"; DateFormat df = new SimpleDateFormat("yyyy_MM_dd_HH:mm:ss"); int bytesRead, bytesAvailable, bufferSize; byte[] buffer; int maxBufferSize = 1 * 1024; try { FileInputStream fileInputStream = new FileInputStream(new File( pathToOurFile)); URL url = new URL(urlServer); connection = (HttpURLConnection) url.openConnection(); // Allow Inputs &amp; Outputs connection.setDoInput(true); connection.setDoOutput(true); connection.setUseCaches(false); connection.setChunkedStreamingMode(1024); // Enable POST method connection.setRequestMethod("POST"); connection.setRequestProperty("Connection", "Keep-Alive"); connection.setRequestProperty("Content-Type", "multipart/form-data;boundary=" + boundary); outputStream = new DataOutputStream(connection.getOutputStream()); outputStream.writeBytes(twoHyphens + boundary + lineEnd); String connstr = null; connstr = "Content-Disposition: form-data; name=\"uploadedfile\";filename=\"" + pathToOurFile + "\"" + lineEnd; Log.i("Connstr", connstr); outputStream.writeBytes(connstr); outputStream.writeBytes(lineEnd); bytesAvailable = fileInputStream.available(); bufferSize = Math.min(bytesAvailable, maxBufferSize); buffer = new byte[bufferSize]; // Read file bytesRead = fileInputStream.read(buffer, 0, bufferSize); Log.e("Image length", bytesAvailable + ""); try { while (bytesRead &gt; 0) { try { outputStream.write(buffer, 0, bufferSize); } catch (OutOfMemoryError e) { e.printStackTrace(); response = "outofmemoryerror"; return response; } bytesAvailable = fileInputStream.available(); bufferSize = Math.min(bytesAvailable, maxBufferSize); bytesRead = fileInputStream.read(buffer, 0, bufferSize); } } catch (Exception e) { e.printStackTrace(); response = "error"; return response; } 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.i("Server Response Code ", "" + serverResponseCode); Log.i("Server Response Message", serverResponseMessage); if (serverResponseCode == 200) { response = "true"; } String CDate = null; Date serverTime = new Date(connection.getDate()); try { CDate = df.format(serverTime); } catch (Exception e) { e.printStackTrace(); Log.e("Date Exception", e.getMessage() + " Parse Exception"); } Log.i("Server Response Time", CDate + ""); filename = CDate + filename.substring(filename.lastIndexOf("."), filename.length()); Log.i("File Name in Server : ", filename); fileInputStream.close(); outputStream.flush(); outputStream.close(); outputStream = null; } catch (Exception ex) { // Exception handling response = "error"; Log.e("Send file Exception", ex.getMessage() + ""); ex.printStackTrace(); } return response; } </code></pre>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. VO
      singulars
      1. This table or related slice is empty.
    2. VO
      singulars
      1. This table or related slice is empty.
    3. VO
      singulars
      1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload