开发者

Android video upload error?

开发者 https://www.devze.com 2023-02-13 04:22 出处:网络
I use this to upload the video to php server, when i try to upload the image ,it was working fine, but when i tried to upload the Video the following error occur,

I use this to upload the video to php server, when i try to upload the image ,it was working fine, but when i tried to upload the Video the following error occur,

"02-22 18:22:35.588: ERROR/dalvikvm-heap(780): Out of memory on a 14680278-byte allocation."

      ***

HttpURLConnection conn = null;
          DataOutputStream dos = null;
          DataInputStream inStream = null; 

          String exsistingFileName = "/sdcard/Video/dance.wmv";
          // Is this the place are you doing something wrong.
          String lineEnd = "\r\n";
          String twoHyphens = "--";
          String boundary =  "*****";
          int bytesRead, bytesAvailable, bufferSize;
          byte[] buffer;
          int maxBufferSize = 1*1024*1024;
          String responseFromServer = "";
          String urlString = "http://172.17.0.146/viddygo/upload.php";
          try
          {
           //------------------ CLIENT REQUEST

          Log.e("MediaPlayer","Inside second Method");
          FileInputStream fileInputStream = new FileInputStream(new File(exsistingFileName) );
           // 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);
           // Don't use a cached copy.
           conn.setUseCaches(false);
           // Use a post method.
           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=\"" + exsistingFileName +"\"" + lineEnd);
           dos.writeBytes(lineEnd);
           Log.e("MediaPlayer","Headers are written");
           // 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 > 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);
           BufferedReader in = new BufferedReader(
                        new InputStreamReader(
                           conn.getInputStream()));
                String inputLine;

                while ((inputLine = in.readLine()) != null) 
                    tv.append(inputLine);



           // close streams
           Log.e("MediaPlayer","File is written");
           fileInputStream.close();
           dos.flush();
           dos.close();
          }
          catch (MalformedURLException ex)
          {
               Log.e("MediaPlayer", "error: " + ex.getMessage(), ex);
          }
          catch (IOException ioe)
          {
               Log.e("MediaPlayer", "error: " + ioe.getMessage(), ioe);
          }
          //------------------ read the SERVER RESPONSE
          try {
                inStream = new DataInputStream ( conn.getInputStream() );
                String str;

                while (( str = inStream.readLine()) != null)
                {
                     Log.e("MediaPlayer","Server Response"+str);
                }
                inStream.close();
          }
          catch (IOException ioex){
               Log.e("MediaPlayer", "error: " + ioex.getMessage(), ioex);
          }

can anyone suggest some idea to solve this开发者_运维问答.


I think error happened in follow line because DataOutputStream size is exceeds VM budget when you write

dos.write(buffer, 0, bufferSize);

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号