【问题标题】:To upload a zip files to remote server in android [closed]在android中将zip文件上传到远程服务器[关闭]
【发布时间】:2013-03-18 05:51:55
【问题描述】:

如何使用 httpurlconnection 将 zip 文件上传到远程服务器?请提供一些 url 链接,例如代码...Thnx

【问题讨论】:

    标签: android zip httpurlconnection


    【解决方案1】:

    尝试以下代码并确认这是可行的解决方案:

    StringBuffer responseBody=new StringBuffer();
     Log.i(Constants.TAG, "Ready to upload file...");
     HttpClient client=new DefaultHttpClient();
    client.getParams().setParameter(CoreProtocolPNames.PROTOCOL_VERSION, HttpVersion.HTTP_1_1);
    
       Log.i(Constants.TAG, "Set remote URL...");
     HttpPost post=new HttpPost("http://IP.IP.IP.IP/file_upload.php");
     MultipartEntity entity=new MultipartEntity(HttpMultipartMode.BROWSER_COMPATIBLE);
    
     Log.i(Constants.TAG, "Adding file(s)...");
    entity.addPart("uploadedfile", new FileBody((FileObj), "application/zip"));
    entity.addPart("uploadedfile2", new FileBody((FileObj), "application/zip"));
    
      Log.i(Constants.TAG, "Set entity...");
        post.setEntity(entity);
    
        BufferedReader bs=null;
       try
      {
        Log.i(Constants.TAG, "Upload...");
        HttpEntity hEntity=client.execute(post).getEntity();
        bs=new BufferedReader(new InputStreamReader(hEntity.getContent()));
          Log.i(Constants.TAG, "Response length - "+hEntity.getContentLength());
     String s="";
       while(s!=null)
    {
    responseBody.append(s);
    s=bs.readLine();
    Log.i(Constants.TAG, "Response body - "+s);
     }
    bs.close();
     }
       catch(IOException ioe)
     {
        Log.i(Constants.TAG, "Error on getting response from Server, "+ioe.toString());
       ioe.printStackTrace();
       responseBody.append("...");
     }
    

    我的平台是Android 2.2,使用这个方案需要获取httpmime.jar作为项目库。

    【讨论】:

      【解决方案2】:

      以下课程也适合我。您可以将设备中的视频、音频和任何文件上传到远程服务器。

      private class Upload extends AsyncTask<Void, Void, Void> {
      
          protected void onPreExecute() {
              mProgressDialog = ProgressDialog.show(ImageUpload.this,
                      "Please wait...", "Loading...");
          }
      
          @Override
          protected Void doInBackground(Void... params) {
              // Your upload Server SCRIPT
              String urlString = "http://192.168.1.176:1001/...  //  You server URL";
              // The file
      
               // The selected path is the location of the file in your device. 
      
              File file = new File(selectedPath);
      
              HttpClient httpclient = new DefaultHttpClient();
              HttpPost httppost = new HttpPost(urlString);
      
              MultipartEntity reqEntity = new MultipartEntity(
                      HttpMultipartMode.BROWSER_COMPATIBLE);
      
              // There are more examples above
              FileBody fb = new FileBody(file, "audio/3gpp");
      
              if (file.getName().endsWith(".xml")) {
                  fb = new FileBody(file, "text/xml");
                  reqEntity.addPart("xml_submission_file", fb);
                  Log.v("Debug", "  file type,   adding file: " + file.getName());
              } else if (file.getName().endsWith(".jpg")) {
                  fb = new FileBody(file, "image/jpeg");
                  reqEntity.addPart(file.getName(), fb);
                  Log.v("Debug", "  file type,   adding file: " + file.getName());
              } else if (file.getName().endsWith(".3gpp")) {
                  fb = new FileBody(file, "audio/3gpp");
                  reqEntity.addPart(file.getName(), fb);
                  Log.v("Debug", "  file type,   adding file: " + file.getName());
              } else if (file.getName().endsWith(".3gp")) {
                  fb = new FileBody(file, "video/3gpp");
                  reqEntity.addPart(file.getName(), fb);
                  Log.v("Debug", "  file type,   adding file: " + file.getName());
              } else if (file.getName().endsWith(".mp4")) {
                  fb = new FileBody(file, "video/mp4");
                  reqEntity.addPart(file.getName(), fb);
                  Log.v("Debug", "  file type,   adding file: " + file.getName());
              } else {
                  Log.w("Debug", "unsupported file type, not adding file: "
                          + file.getName());
              }
      
              FormBodyPart bodyPart = new FormBodyPart("uploadedfile", fb);
              reqEntity.addPart(bodyPart);
              httppost.setEntity(reqEntity);
      
              try {
                  HttpResponse response = httpclient.execute(httppost);
      
                  BufferedReader reader = new BufferedReader(
                          new InputStreamReader(
                                  response.getEntity().getContent(), "UTF-8"));
                  String sResponse;
                  StringBuilder mUploadResponse = new StringBuilder();
      
                  while ((sResponse = reader.readLine()) != null) {
                      mUploadResponse = mUploadResponse.append(sResponse);
                  }
      
                  JSONObject mUploadResponseObject = new JSONObject(
                          mUploadResponse.toString());
      
                  mUploadResponseObject.getJSONArray("response");
      
                  try {
                      JSONArray jsonArray = mUploadResponseObject
                              .getJSONArray("response");
                      for (int i = 0; i < jsonArray.length(); i++) {
                          uploadStatus = jsonArray.getJSONObject(i)
                                  .getJSONObject("send").getString("message");
                          uploadPhotoID = jsonArray.getJSONObject(i)
                                  .getJSONObject("send").getString("id");
                      }
                  } catch (Exception e) {
                      Log.d("DEBUG",
                              "The Json response message : " + e.getMessage());
                  }
      
              } catch (ClientProtocolException e) {
                  Log.d("DEBUG",
                          "The server ClientProtocolException response message : "
                                  + e.getMessage());
                  e.printStackTrace();
              } catch (IOException e) {
                  Log.d("DEBUG", "The server  IOException response message : "
                          + e.getMessage());
                  e.printStackTrace();
              } catch (JSONException e) {
                  Log.d("DEBUG", "The  JSONException server response message : "
                          + e.getMessage());
                  e.printStackTrace();
              }
              return null;
          }
      }
      
      protected void onPostExecute(Void result) {
      
          if (mProgressDialog.isShowing() && mProgressDialog != null) {
              mProgressDialog.dismiss();
          }
          mHandler.sendEmptyMessage(0);
      }
      

      它对我很有效。试试这个。

      【讨论】:

        【解决方案3】:

        您尝试了哪些方法,遇到了哪些问题?上传 zip 文件与上传任何其他文件没有什么不同。

        你可以在网上找到大量的例子。

        但同样,这取决于您的远程服务器期望它如何上传。如果您可以用更多详细信息更新您的问题,那将有所帮助。

        暂时可以通过这些链接。

        How to upload binary file using URLConnection

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2019-01-28
          相关资源
          最近更新 更多