Uploading file in php server from android device

前端 未结 7 1690
孤独总比滥情好
孤独总比滥情好 2020-11-27 02:34

I am trying to upload file to a php server from my android device but server is not receiving any file. here is my sample code, I found it on-line. php server , I am uploa

相关标签:
7条回答
  • 2020-11-27 03:22

    I don't know about your code but providing you both working codes: This is for all types of files. I used it for image, audio and for video files.

    Android:

    new UploadFileAsync().execute("");
    
    
    
      private class UploadFileAsync extends AsyncTask<String, Void, String> {
    
        @Override
        protected String doInBackground(String... params) {
    
            try {
      String sourceFileUri = "/mnt/sdcard/abc.png";
    
                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()) {
    
                    try {
                        String upLoadServerUri = "http://website.com/abc.php?";
    
                        // 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("bill", sourceFileUri);
    
                        dos = new DataOutputStream(conn.getOutputStream());
    
                        dos.writeBytes(twoHyphens + boundary + lineEnd);
                        dos.writeBytes("Content-Disposition: form-data; name=\"bill\";filename=\""
                                + sourceFileUri + "\"" + 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 > 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();
    
                        if (serverResponseCode == 200) {
    
                            // messageText.setText(msg);
                            //Toast.makeText(ctx, "File Upload Complete.",
                            //      Toast.LENGTH_SHORT).show();
    
                            // recursiveDelete(mDirectory1);
    
                        }
    
                        // close the streams //
                        fileInputStream.close();
                        dos.flush();
                        dos.close();
    
                    } catch (Exception e) {
    
                        // dialog.dismiss();
                        e.printStackTrace();
    
                    }
                    // dialog.dismiss();
    
                } // End else block
    
    
            } catch (Exception ex) {
                // dialog.dismiss();
    
                ex.printStackTrace();
            }
            return "Executed";
        }
    
        @Override
        protected void onPostExecute(String result) {
    
        }
    
        @Override
        protected void onPreExecute() {
        }
    
        @Override
        protected void onProgressUpdate(Void... values) {
        }
    }
    

    PHP::

     <?php
    
    
         if (is_uploaded_file($_FILES['bill']['tmp_name'])) {
        $uploads_dir = './';
                                $tmp_name = $_FILES['bill']['tmp_name'];
                                $pic_name = $_FILES['bill']['name'];
                                move_uploaded_file($tmp_name, $uploads_dir.$pic_name);
                                }
                   else{
                       echo "File not uploaded successfully.";
               }
    
       ?>
    
    0 讨论(0)
提交回复
热议问题