<i id='X7sxJ'><tr id='X7sxJ'><dt id='X7sxJ'><q id='X7sxJ'><span id='X7sxJ'><b id='X7sxJ'><form id='X7sxJ'><ins id='X7sxJ'></ins><ul id='X7sxJ'></ul><sub id='X7sxJ'></sub></form><legend id='X7sxJ'></legend><bdo id='X7sxJ'><pre id='X7sxJ'><center id='X7sxJ'></center></pre></bdo></b><th id='X7sxJ'></th></span></q></dt></tr></i><div id='X7sxJ'><tfoot id='X7sxJ'></tfoot><dl id='X7sxJ'><fieldset id='X7sxJ'></fieldset></dl></div>

        <small id='X7sxJ'></small><noframes id='X7sxJ'>

        <tfoot id='X7sxJ'></tfoot>
        <legend id='X7sxJ'><style id='X7sxJ'><dir id='X7sxJ'><q id='X7sxJ'></q></dir></style></legend>
          <bdo id='X7sxJ'></bdo><ul id='X7sxJ'></ul>
      1. 从Android设备上传php服务器中的文件

        时间:2023-05-20

          <bdo id='oITr1'></bdo><ul id='oITr1'></ul>
        • <legend id='oITr1'><style id='oITr1'><dir id='oITr1'><q id='oITr1'></q></dir></style></legend>
        • <i id='oITr1'><tr id='oITr1'><dt id='oITr1'><q id='oITr1'><span id='oITr1'><b id='oITr1'><form id='oITr1'><ins id='oITr1'></ins><ul id='oITr1'></ul><sub id='oITr1'></sub></form><legend id='oITr1'></legend><bdo id='oITr1'><pre id='oITr1'><center id='oITr1'></center></pre></bdo></b><th id='oITr1'></th></span></q></dt></tr></i><div id='oITr1'><tfoot id='oITr1'></tfoot><dl id='oITr1'><fieldset id='oITr1'></fieldset></dl></div>

          <small id='oITr1'></small><noframes id='oITr1'>

                  <tbody id='oITr1'></tbody>
                1. <tfoot id='oITr1'></tfoot>
                2. 本文介绍了从Android设备上传php服务器中的文件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

                  问题描述

                  限时送ChatGPT账号..

                  我正在尝试从我的 android 设备将文件上传到 php 服务器,但服务器没有收到任何文件.这是我的示例代码,我在网上找到的.php服务器,我通过chunk上传文件

                  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 uploading a file through chunk

                  我的安卓代码

                  import java.io.DataOutputStream;
                  import java.io.File;
                  import java.io.FileInputStream;
                  import java.net.HttpURLConnection;
                  import java.net.MalformedURLException;
                  import java.net.URL;
                  import android.app.Activity;
                  import android.app.ProgressDialog;
                  import android.content.Intent;
                  import android.database.Cursor;
                  import android.graphics.Bitmap;
                  import android.graphics.BitmapFactory;
                  import android.net.Uri;
                  import android.os.Bundle;
                  import android.provider.MediaStore;
                  import android.util.Log;
                  import android.view.View;
                  import android.view.View.OnClickListener;
                  import android.widget.Button;
                  import android.widget.ImageView;
                  import android.widget.TextView;
                  import android.widget.Toast;
                  
                  public class MainActivity extends Activity implements OnClickListener{
                  
                  private TextView messageText;
                  private Button uploadButton, btnselectpic;
                  private ImageView imageview;
                  private int serverResponseCode = 0;
                  private ProgressDialog dialog = null;
                  
                  private String upLoadServerUri = null;
                  private String imagepath=null;
                  @Override
                  public void onCreate(Bundle savedInstanceState) {
                  
                      super.onCreate(savedInstanceState);
                      setContentView(R.layout.activity_main);
                  
                      uploadButton = (Button)findViewById(R.id.uploadButton);
                      messageText  = (TextView)findViewById(R.id.messageText);
                      btnselectpic = (Button)findViewById(R.id.button_selectpic);
                      imageview = (ImageView)findViewById(R.id.imageView_pic);
                  
                      btnselectpic.setOnClickListener(this);
                      uploadButton.setOnClickListener(this);
                      upLoadServerUri = "http://192.168.2.4/fileupload/UploadToServer.php";
                  }
                  
                  
                  @Override
                  public void onClick(View arg0) {
                      if(arg0==btnselectpic)
                      {
                          Intent intent = new Intent();
                          intent.setType("image/*");
                          intent.setAction(Intent.ACTION_GET_CONTENT);
                          startActivityForResult(Intent.createChooser(intent, "Complete action using"), 1);
                      }
                      else if (arg0==uploadButton) {
                  
                           dialog = ProgressDialog.show(MainActivity.this, "", "Uploading file...", true);
                           messageText.setText("uploading started.....");
                           new Thread(new Runnable() {
                               public void run() {
                  
                                    uploadFile(imagepath);
                  
                               }
                             }).start();     
                      }
                  
                  } 
                  
                  @Override
                  protected void onActivityResult(int requestCode, int resultCode, Intent data) {
                  
                      if (requestCode == 1 && resultCode == RESULT_OK) {
                          //Bitmap photo = (Bitmap) data.getData().getPath(); 
                  
                          Uri selectedImageUri = data.getData();
                          imagepath = getPath(selectedImageUri);
                          Bitmap bitmap=BitmapFactory.decodeFile(imagepath);
                          imageview.setImageBitmap(bitmap);
                          messageText.setText("Uploading file path:" +imagepath);
                  
                      }
                  }
                       public String getPath(Uri uri) {
                              String[] projection = { MediaStore.Images.Media.DATA };
                              Cursor cursor = managedQuery(uri, projection, null, null, null);
                              int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
                              cursor.moveToFirst();
                              return cursor.getString(column_index);
                          }
                  
                  public int uploadFile(String sourceFileUri) {
                  
                  
                        String fileName = sourceFileUri;
                  
                        HttpURLConnection conn = null;
                        DataOutputStream dos = null;  
                        String lineEnd = "
                  ";
                        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 :"+imagepath);
                  
                             runOnUiThread(new Runnable() {
                                 public void run() {
                                     messageText.setText("Source File not exist :"+ imagepath);
                                 }
                             }); 
                  
                             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("file", fileName); 
                  
                                 dos = new DataOutputStream(conn.getOutputStream());
                  
                                 dos.writeBytes(twoHyphens + boundary + lineEnd); 
                                 dos.writeBytes("Content-Disposition: form-data; name="file";file""
                                                           + 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 > 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.
                  
                   See uploaded file here : 
                  
                  "
                                                    +" c:/xamp/htdocs/file upload/uploads";
                                              messageText.setText(msg);
                                              Toast.makeText(MainActivity.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(MainActivity.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(MainActivity.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 
                       }}
                  

                  PHP 服务器代码在文件上传中,我完成了通过块完成的文件上传,请任何人帮我发​​送通过块上传的正确代码文件和相关的 android 文件上传代码

                  PHP Server code in file uploading ,I am done file uploading done through chunk ,please anyone help me send right code file uploading through chunk and relevant android file uploading code

                  <?php
                  
                  if (empty($_FILES) || $_FILES['file']['error']) {
                  die('{"OK": 0, "info": "Failed to move uploaded file."}');
                  }
                  
                  $chunk = isset($_REQUEST["chunk"]) ? intval($_REQUEST["chunk"]) : 0;
                  $chunks = isset($_REQUEST["chunks"]) ? intval($_REQUEST["chunks"]) : 0;
                  
                  $fileName = isset($_REQUEST["name"]) ? $_REQUEST["name"] : $_FILES["file"]["name"];
                  $filePath = "uploads/$fileName";
                  
                  
                  // Open temp file
                  $out = @fopen("{$filePath}.part", $chunk == 0 ? "wb" : "ab");
                  //$out2 = @fopen("{$filePath}.part2", $chunk == 0 ? "wb" : "ab");
                  if ($out) {
                  // Read binary input stream and append it to temp file
                  $in = @fopen($_FILES['file']['tmp_name'], "rb");
                  
                  if ($in) {
                  while ($buff = fread($in, 4096))
                        fwrite($out, $buff);
                     //print($out);
                   // echo sizeof($out);
                  } else
                  die('{"OK": 0, "info": "Failed to open input stream."}');
                  
                  @fclose($in);
                  
                  @fclose($out);
                  
                  @unlink($_FILES['file']['tmp_name']);
                  } else
                  die('{"OK": 0, "info": "Failed to open output stream."}');
                  
                  
                  // Check if file has been uploaded
                  
                  if (!$chunks || $chunk == $chunks - 1)
                  {
                  // Strip the temp .part suffix off
                  rename("{$filePath}.part", $filePath);
                  }
                  
                  
                  die('{"OK": 1, "info": "Upload successful."}');?>
                  

                  推荐答案

                  我不知道你的代码,但为你提供了两个工作代码:这适用于所有类型的文件.我将它用于图像、音频和视频文件.

                  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.

                  安卓:

                  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 = "
                  ";
                              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.";
                             }
                  
                     ?>
                  

                  这篇关于从Android设备上传php服务器中的文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持html5模板网!

                  上一篇:使用 file_get_contents 上传文件 下一篇:如何在 Zend Framework 2 中访问路由、发布、获取等

                  相关文章

                  最新文章

                  <tfoot id='jXDuh'></tfoot>

                    <legend id='jXDuh'><style id='jXDuh'><dir id='jXDuh'><q id='jXDuh'></q></dir></style></legend>
                    <i id='jXDuh'><tr id='jXDuh'><dt id='jXDuh'><q id='jXDuh'><span id='jXDuh'><b id='jXDuh'><form id='jXDuh'><ins id='jXDuh'></ins><ul id='jXDuh'></ul><sub id='jXDuh'></sub></form><legend id='jXDuh'></legend><bdo id='jXDuh'><pre id='jXDuh'><center id='jXDuh'></center></pre></bdo></b><th id='jXDuh'></th></span></q></dt></tr></i><div id='jXDuh'><tfoot id='jXDuh'></tfoot><dl id='jXDuh'><fieldset id='jXDuh'></fieldset></dl></div>
                      • <bdo id='jXDuh'></bdo><ul id='jXDuh'></ul>

                      <small id='jXDuh'></small><noframes id='jXDuh'>