title: Android image upload to PHP server by randomly select image from sd card or filemanage
body: <p>Actually i just learning about how to upload image to server using php for that i refer <a href="http://androidexample.com/Upload_File_To_Server_-_Android_Example/index.php?view=article_discription&amp;aid=83&amp;aaid=106" rel="nofollow">THIS LINK</a>. In this link they just upload a particular image in sdcard i want to randomly select image from sd card. Anyone known how to randomly select one file from sd card and upload to server.</p>
  
  <blockquote>
    <p>PHP CODE</p>
  </blockquote>
  
  <pre><code>&lt;?php
  
  $file_path = "uploads/";
  
  $file_path = $file_path . basename( $_FILES['uploaded_file']['name']);
  if(move_uploaded_file($_FILES['uploaded_file']['tmp_name'], $file_path)) {
      echo "success";
  } else{
      echo "fail";
  }
  </code></pre>
  
  <p>?></p>
  
  <blockquote>
    <p>src/UploadToServer.java</p>
  </blockquote>
  
  <pre><code>public class UploadToServer extends Activity {
  
  TextView messageText;
  Button uploadButton;
  int serverResponseCode = 0;
  ProgressDialog dialog = null;
  
  String upLoadServerUri = null;
  
  /**********  File Path *************/
  </code></pre>
  
  <p>final String uploadFilePath = "/mnt/sdcard/";
      final String uploadFileName = "er.png";</p>
  
  <pre><code>@Override
  public void onCreate(Bundle savedInstanceState) {
  
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_upload_to_server);
  
      uploadButton = (Button)findViewById(R.id.uploadButton);
      messageText  = (TextView)findViewById(R.id.messageText);
  
      messageText.setText("Uploading file path :- '/mnt/sdcard/"+uploadFileName+"'");
  
      /************* Php script path ****************/
      upLoadServerUri = "http://localhost/picture_upload.php";
  
      uploadButton.setOnClickListener(new OnClickListener() {            
          @Override
          public void onClick(View v) {
  
              dialog = ProgressDialog.show(UploadToServer.this, "", "Uploading file...", true);
  
              new Thread(new Runnable() {
                      public void run() {
                           runOnUiThread(new Runnable() {
                                  public void run() {
                                      messageText.setText("uploading started.....");
                                  }
                              });                      
  
                           uploadFile(uploadFilePath + "" + uploadFileName);
  
                      }
                    }).start();        
              }
          });
  }
  
  public int uploadFile(String sourceFileUri) {
  
  
        String fileName = sourceFileUri;
  
        HttpURLConnection conn = null;
        DataOutputStream dos = null;  
        String lineEnd = "\r\n";
        String twoHyphens = "--";
        String boundary = "*****";
        int bytesRead, bytesAvailable, bufferSize;
        byte[] buffer;
        int maxBufferSize = 1 * 1024 * 1024; 
        File sourceFile = new File(sourceFileUri); 
  
        if (!sourceFile.isFile()) {
  
             dialog.dismiss(); 
  
             Log.e("uploadFile", "Source File not exist :"
                                 +uploadFilePath + "" + uploadFileName);
  
             runOnUiThread(new Runnable() {
                 public void run() {
                     messageText.setText("Source File not exist :"
                             +uploadFilePath + "" + uploadFileName);
                 }
             }); 
  
             return 0;
  
        }
        else
        {
             try { 
  
                   // open a URL connection to the Servlet
                 FileInputStream fileInputStream = new FileInputStream(sourceFile);
                 URL url = new URL(upLoadServerUri);
  
                 // Open a HTTP  connection to  the URL
                 conn = (HttpURLConnection) url.openConnection(); 
                 conn.setDoInput(true); // Allow Inputs
                 conn.setDoOutput(true); // Allow Outputs
                 conn.setUseCaches(false); // Don't use a Cached Copy
                 conn.setRequestMethod("POST");
                 conn.setRequestProperty("Connection", "Keep-Alive");
                 conn.setRequestProperty("ENCTYPE", "multipart/form-data");
                 conn.setRequestProperty("Content-Type", "multipart/form-data;boundary=" + boundary);
                 conn.setRequestProperty("uploaded_file", fileName); 
  
                 dos = new DataOutputStream(conn.getOutputStream());
  
                 dos.writeBytes(twoHyphens + boundary + lineEnd); 
                 dos.writeBytes("Content-Disposition: form-data; name=\"uploaded_file\";filename=\""
                                           + fileName + "\"" + 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);
  
                 // Responses from the server (code and message)
                 serverResponseCode = conn.getResponseCode();
                 String serverResponseMessage = conn.getResponseMessage();
  
                 Log.i("uploadFile", "HTTP Response is : " 
                         + serverResponseMessage + ": " + serverResponseCode);
  
                 if(serverResponseCode == 200){
  
                     runOnUiThread(new Runnable() {
                          public void run() {
  
                              String msg = "File Upload Completed.\n\n See uploaded file here : \n\n"
                                            +"http://localhost/picture_upload.php"
                                            +uploadFileName;
  
                              messageText.setText(msg);
                              Toast.makeText(UploadToServer.this, "File Upload Complete.", 
                                           Toast.LENGTH_SHORT).show();
                          }
                      });                
                 }    
  
                 //close the streams //
                 fileInputStream.close();
                 dos.flush();
                 dos.close();
  
            } catch (MalformedURLException ex) {
  
                dialog.dismiss();  
                ex.printStackTrace();
  
                runOnUiThread(new Runnable() {
                    public void run() {
                        messageText.setText("MalformedURLException Exception : check script url.");
                        Toast.makeText(UploadToServer.this, "MalformedURLException", Toast.LENGTH_SHORT).show();
                    }
                });
  
                Log.e("Upload file to server", "error: " + ex.getMessage(), ex);  
            } catch (Exception e) {
  
                dialog.dismiss();  
                e.printStackTrace();
  
                runOnUiThread(new Runnable() {
                    public void run() {
                        messageText.setText("Got Exception : see logcat ");
                        Toast.makeText(UploadToServer.this, "Got Exception : see logcat ", 
                                Toast.LENGTH_SHORT).show();
                    }
                });
                Log.e("Upload file to server Exception", "Exception : " 
                                                 + e.getMessage(), e);  
            }
            dialog.dismiss();       
            return serverResponseCode; 
  
         } // End else block 
       } 
  </code></pre>
  
  <p>}</p>