httpclient上传文件

本文介绍了一种使用HttpClient进行文件上传的方法,并展示了如何在服务器端接收这些文件。客户端部分使用了commons-httpclient等库来构造POST请求并上传文件,而服务器端则利用DiskFileUpload解析请求并将文件保存到指定目录。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

需要导入的JAR包commons-httpclient-3.1.jar,commons-codec-1.3.jar,commons-logging.jar,commons-fileupload-1.0.jar

模拟客户端

public   class  httpclient {      private   static  String url  =   " http://localhost:9000/httpclient/servlet/httpserver " ;      public   static   void  main(String[] args)  throws  IOException {       HttpClient client = new HttpClient();
      PostMethod  filePost = new PostMethod(http://abc);
    // 连接最大超时时间      client.getHttpConnectionManager().getParams().setConnectionTimeout(5000);
     File file = new File("c:/ddd.txt");
     Part[] parts = { new StringPart("param_name", "value"),new FilePart("datafile", file) };
     filePost.setRequestEntity(new MultipartRequestEntity(parts,filePost.getParams()));
     int statusCode = client.executeMethod(filePost);
     filePost.releaseConnection();     } }

 

模拟服务器端

 

public   class  httpserver  extends  HttpServlet {      public   void  doPost(HttpServletRequest request, HttpServletResponse response)              throws  ServletException, IOException {          try  {             DiskFileUpload uploadFile  =   new  DiskFileUpload();             uploadFile.setRepositoryPath( " d:/ " );             List items  =   null ;             items  =  uploadFile.parseRequest(request);             Iterator iterator  =  items.iterator();             String saveFile  =   "" ;              while  (iterator.hasNext()) {                 FileItem item  =  (FileItem) iterator.next();                 String fieldName  =  item.getFieldName();                 String fieldValue  =   "" ;                  if  (fieldName.equals( " datafile " )) {                     fieldValue  =  item.getName();                      if  (fieldValue.length()  >   0   &&   ! fieldValue.equals( "" )) {                         saveFile  =   new  Date().getTime()  +   " .txt " ;                     }                     File upload_File  =   new  File(saveFile);                     item.write(upload_File);                 }             }         }  catch  (Exception ex) {         }     } }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值