common-httpclient上传文件
2012-01-10 10:00
447 查看
要使用httpclient必须引入commons-codec.jar,commons-io.jar,comons-httpclent.jar。
客户端上传代码:
服务端接收上传文件,使用commons-fileupload组件,用servlet来处理
客户端上传代码:
try { File sendFile = new File(filePath); PostMethod postMethod = new PostMethod(sendURL.toString()); Part[] parts = { new FilePart(sendFile.getName(), sendFile) };// 构建发送的文件对象 MultipartRequestEntity reqEntity = new MultipartRequestEntity( parts, postMethod.getParams()); postMethod.setRequestEntity(reqEntity); HttpClient httpClient = new HttpClient(); int statusCode = httpClient.executeMethod(postMethod); if (statusCode == HttpStatus.SC_OK) { System.out.println("文件发送成功!"); } else { System.out.println("文件发送失败"); } }
服务端接收上传文件,使用commons-fileupload组件,用servlet来处理
import java.io.File; import java.io.IOException; import java.util.List; import javax.servlet.Servlet; import javax.servlet.ServletConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; 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 ImageScanUploadServlet implements Servlet { private String uploadPath = "D:\\temp"; // 上传文件的目录 private String tempPath = "D:\\temp\\buffer\\"; // 临时文件目录 private File tempPathFile; @Override public void destroy() { } @Override public ServletConfig getServletConfig() { return null; } @Override public String getServletInfo() { return null; } @Override public void init(ServletConfig arg0) throws ServletException { File uploadFile = new File(uploadPath); if (!uploadFile.exists()) { uploadFile.mkdirs(); } File tempPathFile = new File(tempPath); if (!tempPathFile.exists()) { tempPathFile.mkdirs(); } } @Override public void service(ServletRequest arg0, ServletResponse arg1) throws ServletException, IOException { try { HttpServletRequest request = (HttpServletRequest) arg0; HttpServletResponse response = (HttpServletResponse) arg1; DiskFileItemFactory factory = new DiskFileItemFactory(); factory.setSizeThreshold(4096);// 设置缓冲区大小,这里是4kb factory.setRepository(tempPathFile); ServletFileUpload upload = new ServletFileUpload(factory); upload.setSizeMax(4194304); // 设置最大文件尺寸,这里是4MB List<FileItem> items = upload.parseRequest(request); for (FileItem fi : items) { String fileName = fi.getName(); if (fileName != null) { File fullFile = new File(fi.getName()); File savedFile = new File(uploadPath, fullFile.getName()); fi.write(savedFile); } System.out.println("upload succeed"); } response.getWriter().write("upload succeed"); } catch (FileUploadException e) { e.printStackTrace(); } catch (Exception e) { e.printStackTrace(); } } }
相关文章推荐
- WebAPI通过multipart/form-data方式同时上传文件以及数据(含HttpClient上传Demo)
- Httpclient 实现带参文件上传
- 文件上传 借助的是AsyncHttpClient
- HttpClient 上传文件
- Jakarta Commons HttpClient 3.x上传文件
- Httpclient上传文件
- Android Asynchronous Http Client 开发实例——上传文件
- 转 Android HttpClient post MultipartEntity - Android 上传文件
- AsyncHttpClient POST上传文件
- HttpClient使用MultipartEntityBuilder实现多文件上传
- httpclient通过POST来上传文件,而不是通过流的形式,并在服务端进行解析(通过httpmime.jar来操作)
- 轻松把玩HttpClient之封装HttpClient工具类(九),添加多文件上传功能
- HttpClient4文件上传
- HttpClient post 上传文件 笔记
- HttpClient上传图片,下载文件
- httpclient上传文件实例
- 关于httpClient上传文件
- Android HttpClient post MultipartEntity - Android 上传文件
- HttpClient通过post上传文件和提交参数
- HttpClient通过Post上传多个文件