out of Memory error in android
<p>I am working in android. I am designing a program to upload a file to the http server.</p>

<p>but whenever i run this program and select a file which is a little bit more in size then this will generate following error.</p>

<pre><code>java.lang.OutOfMemoryError

     at java.io.ByteArrayOutputStream.expand(ByteArrayOutputStream.java:93)


     at java.io.ByteArrayOutputStream.write(ByteArrayOutputStream.java:218)

 ERROR/AndroidRuntime(557):     at 

org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnectionImpl$DefaultHttpOut

putStream.write(HttpURLConnectionImpl.java:750)


10-15 03:08:32.113: ERROR/AndroidRuntime(557):     at 

java.io.DataOutputStream.write(DataOutputStream.java:101)
</code></pre>

<p>this is my file for upload:-</p>

<pre><code>HttpURLConnection conn = null;
        DataOutputStream dos = null;

        DataInputStream inStream = null;



        String existingFileName = "/mnt/sdcard/kuntal.PNG";


        Log.v("File upload",""+Environment.getExternalStorageDirectory().getAbsolutePath());
        String lineEnd = "\r\n";

        String twoHyphens = "--";

        String boundary =  "*****";

        int bytesRead, bytesAvailable, bufferSize;

        byte[] buffer;

        int maxBufferSize = 1*1024*1024;

        String responseFromServer = "";

        Log.v(TAG,"url=  ");

        String urlString = "http://192.168.1.126/MusicApplication/uploadmusic.php?title="+title_by_artist+"&amp;category="+category_of_song+"&amp;filename="+filename+"&amp;price="+price_of_song+"&amp;artist="+HomePageActivity.username;
        Log.v(TAG,"url=  "+urlString);
        try
        {
         //------------------ CLIENT REQUEST
        FileInputStream fileInputStream = new FileInputStream(new File(existingFileName) );

         // open a URL connection to the Servlet

         URL url = new URL(urlString);

         // Open a HTTP connection to the URL

         conn = (HttpURLConnection) url.openConnection();

         // Allow Inputs
         conn.setDoInput(true);

         // Allow Outputs
         conn.setDoOutput(true);

         conn.setUseCaches(false);

         conn.setRequestMethod("POST");

         conn.setRequestProperty("Connection", "Keep-Alive");

         conn.setRequestProperty("Content-Type", "multipart/form-data;boundary="+boundary);

         dos = new DataOutputStream( conn.getOutputStream() );
         dos.writeBytes(twoHyphens + boundary + lineEnd);

         dos.writeBytes("Content-Disposition: form-data; name=\"uploadedfile\";filename=\"" + existingFileName + "\"" + lineEnd);

         dos.writeBytes(lineEnd);

         // create a buffer of maximum size

         bytesAvailable = fileInputStream.available();

         bufferSize = Math.min(bytesAvailable, maxBufferSize);

         buffer = new byte[bufferSize];
         // read file and write it into form...
         bytesRead = fileInputStream.read(buffer, 0, bufferSize);
         while (bytesRead &gt; 0)
         {
          dos.write(buffer, 0, bufferSize);

          bytesAvailable = fileInputStream.available();

          bufferSize = Math.min(bytesAvailable, maxBufferSize);

          bytesRead = fileInputStream.read(buffer, 0, bufferSize);

         }
         // send multipart form data necesssary after file data...
         dos.writeBytes(lineEnd);
         dos.writeBytes(twoHyphens + boundary + twoHyphens + lineEnd);
         // close streams
         Log.e("Debug","File is written");
         fileInputStream.close();
         dos.flush();
         dos.close();
         Toast.makeText(this, "File Successfully Uploaded", Toast.LENGTH_SHORT).show();

        }
        catch (MalformedURLException ex)
        {
             Log.e("Debug", "error: " + ex.getMessage(), ex);
        }
        catch (IOException ioe)
        {
             Log.e("Debug", "error: " + ioe.getMessage(), ioe);
        }
        //------------------ read the SERVER RESPONSE
        try {
              inStream = new DataInputStream ( conn.getInputStream() );
              String str;

              while (( str = inStream.readLine()) != null)
              {
                   Log.e("Debug","Server Response "+str);
              }
              inStream.close();

        }
        catch (IOException ioex){
             Log.e("Debug", "error: " + ioex.getMessage(), ioex);
        }
        }




**and this is my php file for upload:-**


if(move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $target_path)) 
{



    echo "The file ".  basename( $_FILES['uploadedfile']['name']). 
    " has been uploaded";
    chmod ("Songs/".basename( $_FILES['uploadedfile']['name']), 0644);
} 
else
{

    echo "filename: " .  basename( $_FILES['uploadedfile']['name']);
    echo "target_path: " .$target_path;
}
</code></pre>

<p>please help me what should i do to upload file of a little more big size like as mp3 file.
Thank you in advance...</p>
