HttpClient 3.1 文件上传

HttpClient 3.1 文件上传

客户端:

需要commons-codec,commons-httpclient-3.1,commons-logging-1.1.1

 String targetURL = null;// TODO 指定URL File targetFile = null;// TODO 指定上传文件 targetFile = new File("C:\\Users\\Administrator\\Desktop\\1.mp3"); targetURL = "http://localhost:8080/HttpClientDemo/test"; //servleturl PostMethod filePost = new PostMethod(targetURL); try { //通过以下方法可以模拟页面参数提交 filePost.setParameter("name", "中文"); filePost.setParameter("pass", "1234"); Part[] parts = { new FilePart(targetFile.getName(), targetFile) }; filePost.setRequestEntity(new MultipartRequestEntity(parts,filePost.getParams())); HttpClient client = new HttpClient(); client.getHttpConnectionManager().getParams().setConnectionTimeout(10000); int status = client.executeMethod(filePost); if (status == HttpStatus.SC_OK) { System.out.println("上传成功"); // 上传成功 } else { System.out.println("上传失败"); // 上传失败 } } catch (Exception ex) { ex.printStackTrace(); } finally { filePost.releaseConnection(); }

服务器端:

需要commons-fileupload-1.2.1.jar commons-io.jar

public class HttpClientTest extends HttpServlet { private String uploadPath = "D:\\temp"; // 上传文件的目录 private String tempPath = "d:\\temp\\buffer\\"; // 临时文件目录 File tempPathFile; public void init() throws ServletException { File uploadFile = new File(uploadPath); if (!uploadFile.exists()) { uploadFile.mkdirs(); } File tempPathFile = new File(tempPath); if (!tempPathFile.exists()) { tempPathFile.mkdirs(); } } // @Override // protected void service(HttpServletRequest request, HttpServletResponse response) // throws ServletException, IOException { // String name=request.getParameter("name"); System.out.println("name: "+name); request.getRequestDispatcher("index.jsp").forward(request, response); // // // // } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { try { System.out.println("dopost"); // Create a factory for disk-based file items DiskFileItemFactory factory = new DiskFileItemFactory(); // Set factory constraints factory.setSizeThreshold(4096); // 设置缓冲区大小,这里是4kb factory.setRepository(tempPathFile);// 设置缓冲区目录 // Create a new file upload handler ServletFileUpload upload = new ServletFileUpload(factory); // Set overall request size constraint upload.setSizeMax(10*1024*1024); // 设置最大文件尺寸,这里是10MB List<FileItem> items = upload.parseRequest(request);// 得到所有的文件 Iterator<FileItem> i = items.iterator(); while (i.hasNext()) { FileItem fi = (FileItem) i.next(); String fileName = fi.getName(); System.out.println(fileName); if (fileName != null) { File fullFile = new File(fi.getName()); File savedFile = new File(uploadPath, fullFile.getName()); fi.write(savedFile); } } System.out.print("upload succeed"); } catch (Exception e) { System.out.println(e.getMessage()); // 可以跳转出错页面 e.printStackTrace(); } } }

转载于:https://my.oschina.net/joeytai/blog/521140

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/109282.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • unix查看资源使用情况_王的命令第六集资源

    unix查看资源使用情况_王的命令第六集资源系统资源主要是内存、磁盘、CPU三项,其中任一项资源用尽都会造成系统崩溃。逻辑CPU数=物理CPU数*每个物理CPU核数

    2022年8月1日
    6
  • pb数据库连接_jdbc连接mysql中文乱码

    pb数据库连接_jdbc连接mysql中文乱码最近需要用pb联mysql做个项目,查网上有关的方法,很多都没说清楚,所以在这里总结下:  采用JDBC连接,首先去MYSQL官网下载mysql-connector-java-5.0.7.rar JDBC驱动打开PB,菜单Tools–>systemoptions,打开JAVA选项,点击新增文件(白色文件图标)选择刚解压的mysql-connector-java

    2025年10月10日
    5
  • python怎样安装whl文件

    python怎样安装whl文件python第三方组件有很多都是whl文件,遇到这样的whl文件应该怎样安装呢,今天来介绍一下whl文件怎样安装。(一)下载whl文件可以从下面;两个网站找到自己需要的whl文件,部分文件在国内网站上没有,pypi网站上是最全的。pypi网站:https://pypi.python.org/pypi/国内whl集合网:https://www.l…

    2022年4月5日
    111
  • Android应用开发揭秘

    Android应用开发揭秘《Android应用开发揭秘》                                              ///////http://www.iteye.com/wiki/hzbook/2249-Android  书名:Android应用开发揭秘作者:杨丰盛出版社:机械工业出版社ISBN:9787111291954出版日期:2010年3月(1版2次)…

    2022年4月28日
    43
  • Linux安装JDK1.8(看这一篇就够了) 附安装包下载地址

    文章目录Linux-jdk1.8下载地址1.都要做什么?2.安装2.1创建两个文件夹2.2使用工具上传至Linux服务器2.3解压到install文件夹中3.配置环境变量3.1编辑文件3.2将内容复制到文件中3.3检查是否配置完成3.4更新profile文件3.5重新检查4.切换版本(本地已有jdk时操作,没有请忽略!)Linux-jdk1.8下载地址点击下载jdk1.8-l…

    2022年4月6日
    56
  • 关系数据库理论(一)

    关系数据库理论(一)前面已经讲述了关系数据库、关系模型的基本概念以及关系数据库的标准语言。如何使用关系模型设计关系数据库,也就是面对一个现实问题,如何选择一个比较好的关系模式的集合,每个关系又应该由哪些属性组成,这属于数

    2022年7月1日
    27

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号