title: android filedialog then upload to server
body: <p>For my Activity i have two buttons, one is to pick a file using FileDialog, and then the other one is to upload it. My problem here is getting the value of the file from the FileDialog. I'm just using toast in my FileDialog method so that i can see the file name being selected. I'm using this one as a reference <a href="http://androidexample.com/Upload_File_To_Server_-_Android_Example/index.php?view=article_discription&amp;aid=83&amp;aaid=106" rel="nofollow">click here. </a> How can i get the filename and the path of the file and then place it in a string variable. Can you help me with these? Sorry I'm a novice.</p>
  
  <p>FileDialog method</p>
  
  <pre><code>public static void openDialogToUploadFile(final Activity activity,final Context context) {
  
      File mPath = new File(Environment.getExternalStorageDirectory() + "//DIR//");
  
      FileDialog fileDialog = new FileDialog(activity, mPath);
      fileDialog.setFileEndsWith(".txt");
  
      fileDialog.addFileListener(new FileDialog.FileSelectedListener() {
  
          @Override
          public void fileSelected(File file) {
              Toast.makeText(context, "File: "+file, Toast.LENGTH_SHORT).show();
          }
      });
      fileDialog.showDialog();
  }
  </code></pre>
  
  <p>In here i want the value of the uploadFileName and uploadFilePath will be coming from the FileDialog method. How can i achieve this?</p>
  
  <p>Reference Class:</p>
  
  <p>UploadToServer.java</p>
  
  <pre><code>public class UploadToServer extends Activity {
  
      TextView messageText;
      Button uploadButton;
      int serverResponseCode = 0;
      ProgressDialog dialog = null;
  
      String upLoadServerUri = null;
  
      /**********  File Path *************/
      final String uploadFilePath = "/mnt/sdcard/";
      final String uploadFileName = "service_lifecycle.png";
  
      @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://www.androidexample.com/media/UploadToServer.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://www.androidexample.com/media/uploads/"
                                                +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>