title: Android Upload of File to Server
body: <p>Based on the recommendations of a previous post I'm trying to use <a href="https://stackoverflow.com/questions/12789703/android-uploading-image-on-server-with-php">Android: Uploading image on server with php</a> however I get a file not found exception.</p>
  
  <p>Here's my function as described in the post above. My input for these are:</p>
  
  <p>Gallery: uploadFile: <code>Source File not exist :content://media/external/images/media/342</code>
  Photo: uploadFile: <code>Source File not exist: file:///storage/emulated/0/MyDir/blah</code></p>
  
  <p>These uri's are derived from the intent a lanched to catputre/select them. Any ideas why I get a <code>File Not Found</code> exception?</p>
  
  <pre><code>private void doFileUpload(String exsistingFileName){
      HttpURLConnection conn = null;
      DataOutputStream dos = null;
      DataInputStream inStream = null; 
  
      //String exsistingFileName = "/sdcard/six.3gp";
      // 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 urlString = "http://192.168.1.5/upload.php";
      try
      {
          Log.e("MediaPlayer","Inside second Method");
          FileInputStream fileInputStream = new FileInputStream(new File(exsistingFileName) );
          URL url = new URL(urlString);
          conn = (HttpURLConnection) url.openConnection();
          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");
          bytesAvailable = fileInputStream.available();
          bufferSize = Math.min(bytesAvailable, maxBufferSize);
          buffer = new byte[bufferSize];
          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);
          }
          dos.writeBytes(lineEnd);
          dos.writeBytes(twoHyphens + boundary + twoHyphens + lineEnd);
          BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream()));
          String inputLine;
          String LogString = "";
  
          while ((inputLine = in.readLine()) != null)  {
              LogString= LogString + inputLine;
          }
  
          Log.i(Utils.TAG, LogString);
          // close streams
          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);
          }
          /*while((str = inStream.readLine()) !=null ){
  
          }*/
          inStream.close();
      }
      catch (IOException ioex){
          Log.e("MediaPlayer", "error: " + ioex.getMessage(), ioex);
      }
  }
  </code></pre>