内容如题,不多说,直接上代码。

android客户端代码:
public class MainActivity extends Activity{private TextView uploadInfo;@Overrideprotected void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);uploadInfo = (TextView) findViewById(R.id.upload_info);uploadFile();}public void uploadFile(){//服务器端地址String url = "http://192.168.0.108:8080/UploadFileServer/upload";//手机端要上传的文件,首先要保存你手机上存在该文件String filePath = Environment.getExternalStorageDirectory()+ "/1/power.apk";AsyncHttpClient httpClient = new AsyncHttpClient();RequestParams param = new RequestParams();try{param.put("file", new File(filePath));param.put("content", "liucanwen");httpClient.post(url, param, new AsyncHttpResponseHandler(){@Overridepublic void onStart(){super.onStart();uploadInfo.setText("正在上传...");}@Overridepublic 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);}@Overridepublic void onFailure(Throwable arg0, String arg1){super.onFailure(arg0, arg1);uploadInfo.setText("上传失败!");}});} catch (FileNotFoundException e){e.printStackTrace();Toast.makeText(MainActivity.this, "上传文件不存在!", 1000).show();}}}



服务器端代码:
public class UploadFileServlet extends HttpServlet{public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException{response.setContentType("text/html");PrintWriter out = response.getWriter();// 创建文件项目工厂对象DiskFileItemFactory factory = new DiskFileItemFactory();// 设置文件上传路径String upload = this.getServletContext().getRealPath("/upload/");// 获取系统默认的临时文件保存路径,该路径为Tomcat根目录下的temp文件夹String temp = System.getProperty("java.io.tmpdir");// 设置缓冲区大小为 5Mfactory.setSizeThreshold(1024 * 1024 * 5);// 设置临时文件夹为tempfactory.setRepository(new File(temp));// 用工厂实例化上传组件,ServletFileUpload 用来解析文件上传请求ServletFileUpload servletFileUpload = new ServletFileUpload(factory);// 解析结果放在List中try{List<FileItem> list = servletFileUpload.parseRequest(request);for (FileItem item : list){String name = item.getFieldName();InputStream is = item.getInputStream();if (name.contains("content")){System.out.println(inputStream2String(is));} else if(name.contains("file")){try{inputStream2File(is, upload + "\\" + item.getName());} catch (Exception e){e.printStackTrace();}}}out.write("success");} catch (FileUploadException e){e.printStackTrace();out.write("failure");}out.flush();out.close();}// 流转化成字符串public static String inputStream2String(InputStream is) throws IOException{ByteArrayOutputStream baos = new ByteArrayOutputStream();int i = -1;while ((i = is.read()) != -1){baos.write(i);}return baos.toString();}// 流转化成文件public static void inputStream2File(InputStream is, String savePath)throws Exception{System.out.println("文件保存路径为:" + savePath);File file = new File(savePath);InputStream inputSteam = is;BufferedInputStream fis = new BufferedInputStream(inputSteam);FileOutputStream fos = new FileOutputStream(file);int f;while ((f = fis.read()) != -1){fos.write(f);}fos.flush();fos.close();fis.close();inputSteam.close();}}



客户端和服务器端代码下载地址:
http://download.csdn.net/detail/qq15989177612/6900727

更多相关文章

  1. Pycharm安装PyQt5的详细教程
  2. [android源码下载索引贴】微信+二维码那都不是事......
  3. 【Android】使用LiveData KTX Builder让代码更简洁
  4. 一个简单的iPhone项目及代码
  5. android布局文件中的include
  6. Android(安卓)获取存储卡路径和空间使用情况
  7. 打android的patch
  8. TabHost两种实现方式
  9. Android(安卓)单元测试小总结

随机推荐

  1. Android系统移植(三)-按键字符表
  2. 英特尔® 硬件加速执行管理器安装指南 —
  3. 利用Android(安卓)Studio、MAT对Android
  4. Android(安卓)Service组件 部署服务端
  5. [Android(安卓)编译(一)] Ubuntu 16.04 L
  6. Android使用Application总结
  7. 浅谈Android中的 Fragment、生命周期回调
  8. android事件拦截处理机制详解
  9. Android(安卓)公共库的建立方法
  10. Android(安卓)开发之 Shape 篇