歡迎您光臨本站 註冊首頁

android通過servlet上傳文件到服務器

←手機掃碼閱讀     kyec555 @ 2020-06-17 , reply:0

本文實例為大家分享了android通過servlet上傳文件到服務器的具體代碼,供大家參考,具體內容如下

服務器端:部署在Tomcat上,直接在myEclipse上開發即可

  package com;     import java.io.BufferedInputStream;  import java.io.ByteArrayOutputStream;  import java.io.File;  import java.io.FileOutputStream;  import java.io.IOException;  import java.io.InputStream;  import java.io.OutputStream;  import java.io.PrintWriter;  import java.text.SimpleDateFormat;  import java.util.Date;  import java.util.List;     import javax.servlet.ServletException;  import javax.servlet.http.HttpServlet;  import javax.servlet.http.HttpServletRequest;  import javax.servlet.http.HttpServletResponse;     import org.apache.commons.fileupload.FileItem;  import org.apache.commons.fileupload.FileUploadException;  import org.apache.commons.fileupload.disk.DiskFileItemFactory;  import org.apache.commons.fileupload.servlet.ServletFileUpload;     public class upload extends HttpServlet {         private String transerFileName ;      /**   * Constructor of the object.   */   public upload() {   super();   }      /**   * Destruction of the servlet. 
   */   public void destroy() {   super.destroy(); // Just puts "destroy" string in log   // Put your code here   }      /**   * The doGet method of the servlet. 
   *    * This method is called when a form has its tag value method equals to get.   *    * @param request   *   the request send by the client to the server   * @param response   *   the response send by the server to the client   * @throws ServletException   *    if an error occurred   * @throws IOException   *    if an error occurred   */   public void doGet(HttpServletRequest request, HttpServletResponse response)   throws ServletException, IOException {      response.setContentType("text/html");   PrintWriter out = response.getWriter();   out.println("");   out.println("");   out.println("");   out.println("");   out.print(" This is ");   out.print(this.getClass());   out.println(", using the GET method");   out.println("");   out.println("");   out.flush();   out.close();   }      /**   * The doPost method of the servlet. 
   *    * This method is called when a form has its tag value method equals to   * post.   *    * @param request   *   the request send by the client to the server   * @param response   *   the response send by the server to the client   * @throws ServletException   *    if an error occurred   * @throws IOException   *    if an error occurred   */   public void doPost(HttpServletRequest request, HttpServletResponse response)   throws ServletException, IOException {   response.setContentType("text/html");      // /response.setHeader("Content-Type",   // "application/x-www-form-urlencoded; charset=GBK");      PrintWriter out = response.getWriter();   request.setCharacterEncoding("utf-8");////這句至關重要,不然中文的文件名稱顯示亂碼   // 創建文件項目工廠對象   DiskFileItemFactory factory = new DiskFileItemFactory();      // 設置文件上傳路徑   //String upload = this.getServletContext().getRealPath("/upload/");      String upload="F:upload";   // 獲取系統默認的臨時文件保存路徑,該路徑為Tomcat根目錄下的temp文件夾   // String temp = System.getProperty("java.io.tmpdir");      // 設置緩衝區大小為 500M   factory.setSizeThreshold(1024 * 1024 * 500);// //緩衝區設置太大會上傳失敗   // 設置臨時文件夾為temp   // factory.setRepository(new File(temp));   factory.setRepository(new File(upload));   // 用工廠實例化上傳組件,ServletFileUpload 用來解析文件上傳請求   ServletFileUpload servletFileUpload = new ServletFileUpload(factory);      // 解析結果放在List中      List

 

手機端:
 

  package com.example;     import java.io.File;  import java.io.FileNotFoundException;  import java.io.UnsupportedEncodingException;     import org.apache.http.client.methods.HttpPost;     import android.app.Activity;  import android.os.Bundle;  import android.os.Environment;  import android.util.Log;  import android.view.View;  import android.view.View.OnClickListener;  import android.widget.Button;  import android.widget.TextView;  import android.widget.Toast;     import com.loopj.android.http.AsyncHttpClient;  import com.loopj.android.http.AsyncHttpResponseHandler;  import com.loopj.android.http.RequestParams;     public class MainActivity extends Activity {   private TextView uploadInfo;   private Button button1;      @Override   protected void onCreate(Bundle savedInstanceState) {   super.onCreate(savedInstanceState);   setContentView(R.layout.activity_main);      uploadInfo = (TextView) findViewById(R.id.upload_info);   button1 = (Button) findViewById(R.id.button1);      button1.setOnClickListener(new OnClickListener() {      @Override   public void onClick(View v) {   // TODO 自動生成的方法存根   uploadFile();   }   });      }// /onCreate      private void uploadFile() {      // new Thread(new Runnable() {////不能使用線程   //   // @Override   // public void run() {   // TODO 自動生成的方法存根   // 服務器端地址   String url = "http://192.168.0.105:8080/upload/servlet/upload";      // 手機端要上傳的文件,首先要保存你手機上存在該文件   // String filePath = Environment.getExternalStorageDirectory() +   // "/1delete/1.jpg";   // String filePath ="/sdcard/1delete/1.jpg"; ///可以   // String filePath ="/sdcard/11/軟工大作業.ppt";///可以   // String filePath ="/sdcard/音樂/許嵩-千古.mp3";////別忘了/sdcard開頭,,可以   // /String filePath ="/sdcard/相機/22222.mp4"; ///30M 不可以   String filePath = "/sdcard/音樂/愛的勇氣.mp3";   Log.i("filePath", filePath);      AsyncHttpClient httpClient = new AsyncHttpClient();   httpClient.setTimeout(60 * 60 * 1000);   RequestParams param = new RequestParams();   try {   param.put("file", new File(filePath));   httpClient.post(url, param, new AsyncHttpResponseHandler() {   @Override   public void onStart() {    super.onStart();    uploadInfo.setText("正在上傳...");   }      @Override   public void onSuccess(String arg0) {    super.onSuccess(arg0);    Log.i("ck", "success>" + arg0);    if (arg0.equals("success")) {    Toast.makeText(MainActivity.this, "上傳成功!", 1000).show();    }    uploadInfo.setText(arg0);   }      @Override   public void onFailure(Throwable arg0, String arg1) {    super.onFailure(arg0, arg1);    uploadInfo.setText("上傳失敗!");   }   });   } catch (FileNotFoundException e) {   e.printStackTrace();   Toast.makeText(MainActivity.this, "上傳文件不存在!", 1000).show();   }   // }   // }).start();      }  }

 

  

 

                                                       

   


[kyec555 ] android通過servlet上傳文件到服務器已經有1341次圍觀

http://coctec.com/docs/android/show-post-238844.html