android手机客户端上传文件,java servlet服务器端接收并保存到服务器
客户端:
publicclassMainActivityextendsActivity{privateTextViewuploadInfo; @OverrideprotectedvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); uploadInfo = (TextView) findViewById(R.id.upload_info); uploadFile()} publicvoiduploadFile(){//服务器端地址Stringurl = "http://192.168.0.108:8080/UploadFileServer/upload"; //手机端要上传的文件,首先要保存你手机上存在该文件StringfilePath = Environment.getExternalStorageDirectory() + "/1/power.apk"; AsyncHttpClienthttpClient = newAsyncHttpClient(); RequestParamsparam = newRequestParams(); try{param.put("file", newFile(filePath)); param.put("content", "liucanwen"); httpClient.post(url, param, newAsyncHttpResponseHandler(){@OverridepublicvoidonStart(){super.onStart(); uploadInfo.setText("正在上传...")} @OverridepublicvoidonSuccess(Stringarg0){super.onSuccess(arg0); Log.i("ck", "success>" + arg0); if(arg0.equals("success")){Toast.makeText(MainActivity.this, "上传成功!", 1000).show()} uploadInfo.setText(arg0)} @OverridepublicvoidonFailure(Throwablearg0, Stringarg1){super.onFailure(arg0, arg1); uploadInfo.setText("上传失败!")} })} catch (FileNotFoundExceptione){e.printStackTrace(); Toast.makeText(MainActivity.this, "上传文件不存在!", 1000).show()} } } 服务器端: ```javapublicclassUploadFileServletextendsHttpServlet{publicvoiddoPost(HttpServletRequestrequest, HttpServletResponseresponse) throwsServletException, IOException{response.setContentType("text/html"); PrintWriterout = response.getWriter(); // 创建文件项目工厂对象DiskFileItemFactoryfactory = newDiskFileItemFactory(); // 设置文件上传路径Stringupload = this.getServletContext().getRealPath("/upload/"); // 获取系统默认的临时文件保存路径,该路径为Tomcat根目录下的temp文件夹Stringtemp = System.getProperty("java.io.tmpdir"); // 设置缓冲区大小为 5Mfactory.setSizeThreshold(1024 * 1024 * 5); // 设置临时文件夹为tempfactory.setRepository(newFile(temp)); // 用工厂实例化上传组件,ServletFileUpload 用来解析文件上传请求ServletFileUploadservletFileUpload = newServletFileUpload(factory); // 解析结果放在List中try{List<FileItem> list = servletFileUpload.parseRequest(request); for (FileItemitem : list){Stringname = item.getFieldName(); InputStreamis = item.getInputStream(); if (name.contains("content")){System.out.println(inputStream2String(is))} elseif(name.contains("file")){try{inputStream2File(is, upload + "\\" + item.getName())} catch (Exceptione){e.printStackTrace()} } } out.write("success")} catch (FileUploadExceptione){e.printStackTrace(); out.write("failure")} out.flush(); out.close()} // 流转化成字符串publicstaticStringinputStream2String(InputStreamis) throwsIOException{ByteArrayOutputStreambaos = newByteArrayOutputStream(); inti = -1; while ((i = is.read()) != -1){baos.write(i)} returnbaos.toString()} // 流转化成文件publicstaticvoidinputStream2File(InputStreamis, StringsavePath) throwsException{System.out.println("文件保存路径为:" + savePath); Filefile = newFile(savePath); InputStreaminputSteam = is; BufferedInputStreamfis = newBufferedInputStream(inputSteam); FileOutputStreamfos = newFileOutputStream(file); intf; while ((f = fis.read()) != -1){fos.write(f)} fos.flush(); fos.close(); fis.close(); inputSteam.close()} } 联系邮箱:liucanwen517@gmail.com