`

httpClient 文件上传

    博客分类:
  • Jave
阅读更多
import java.io.File;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.HttpStatus;
import org.apache.commons.httpclient.methods.PostMethod;
import org.apache.commons.httpclient.methods.multipart.FilePart;
import org.apache.commons.httpclient.methods.multipart.MultipartRequestEntity;
import org.apache.commons.httpclient.methods.multipart.Part;

public class Hclient
{
public static void main(String args[])
{
   String targetURL = null;// TODO 指定URL
   File targetFile = null;// TODO 指定上传文件
  
   targetFile = new File("1.mp3");
   targetURL = "http://localhost:8080/test/tt"; //servleturl 
   PostMethod filePost = new PostMethod(targetURL);  //若没有commons-codec-1.4-bin.zip, 这里将会出错
  
   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(5000);
    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();
   } 
}
}

  


 

package servlet;

import java.io.File;
import java.io.IOException;
import java.util.Iterator;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;

public class TestServlets 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();
        }
     }


public void doPost(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException
{
   try 
   {
    // 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(4194304); // 设置最大文件尺寸,这里是4MB
    List<FileItem> items = upload.parseRequest(request);// 得到所有的文件
    Iterator<FileItem> i = items.iterator();
    while (i.hasNext())
    {
     FileItem fi = (FileItem) i.next();
     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.print("upload succeed");
   }
   catch (Exception e)
   {
    System.out.println(e.getMessage());
    // 可以跳转出错页面
    e.printStackTrace();
   }
}
}

//转载于:http://www.cnblogs.com/zhangxz/archive/2010/09/06/1819333.html


分享到:
评论

相关推荐

    httpClient文件上传

    使用httpclient上传文件, CloseableHttpClient httpClient = HttpClientBuilder.create().build();

    httpclient 文件上传 下载

    它提供了丰富的功能,包括文件上传和下载,支持请求流,以及处理JSON和XML数据。在本例中,我们关注的是HTTPClient 4版本,这是一个稳定且功能强大的版本,适用于多种网络交互场景。 文件上传通常涉及到HTTP的POST...

    android httpclient文件上传 http协议post get方法向服务器传输数据

    3. **HTTPClient文件上传**:在Android中,HTTPClient支持文件上传,这在处理用户上传图片、音频等文件的场景中非常常见。文件上传通常涉及MultipartEntityBuilder,它允许我们将文件作为多部分实体的一部分发送。...

    HttpClient 文件上传

    在这个场景中,我们主要关注如何使用HttpClient进行文件上传。 文件上传通常涉及到Web服务器与客户端之间的交互,比如用户通过网页上传图片或文档到服务器。HttpClient库提供了一个方便的接口来实现这种功能。以下...

    使用HttpClient实现文件的上传所需lib

    2. **MultipartEntityBuilder**:在HttpClient中,用于文件上传的关键类是`MultipartEntityBuilder`。它允许我们将文件作为多部分/form-data类型的数据发送,这是HTTP协议中用于上传文件的标准格式。 3. **文件上传...

    基已HttpClient文件上传测试用例

    基已HttpClient模拟发送请求,文件上传测试用例。

    HttpClient 4文件上传

    ### HttpClient 4 文件上传知识点详解 #### 一、概述 在Java开发中,经常会遇到需要通过HTTP协议上传文件的需求。Apache HttpClient是一个强大的客户端HTTP组件,它不仅支持HTTP协议,还能处理HTTPS请求,并提供了...

    HttpClient 4 - 文件上传

    HttpClient 4 版本引入了许多改进,使得文件上传变得更加简单和高效。在这个主题中,我们将深入探讨HttpClient 4如何实现文件上传,以及相关的核心概念和技术。 首先,我们需要了解HttpClient 4的基本用法。...

    httpclient和RestfuL风格上传下载文件

    综上所述,HTTPClient和RESTful风格的文件上传下载在Java分布式系统中具有广泛应用。通过HTTPClient实现HTTP请求,利用RESTful接口定义清晰的操作方式,可以构建高效、灵活的文件传输方案。同时,理解并遵循良好的...

    httpClient上传文件

    在Java编程中,Apache HttpClient库是一个非常常用的工具,用于...以上就是使用Apache HttpClient进行文件上传的基本流程和技术细节,以及相关的Servlet处理部分。在实际开发中,还需要根据具体需求进行调整和优化。

    httpclient 上传文件

    总结起来,使用HTTPClient进行文件上传涉及创建POST请求、构建多部分实体、设置字符集,以及正确处理响应。乱码问题通常源于字符集不匹配,需在客户端和服务器端都进行适当的设置。理解这些知识点有助于在实际开发中...

    HttpClient上传文件需要的Jar包

    在这个场景中,"HttpClient上传文件需要的Jar包"指的是在使用HttpClient进行文件上传操作时,你需要确保引入了正确的依赖库。 首先,我们需要了解HttpClient的基本概念。HttpClient是Apache软件基金会的一个项目,...

    HttpClient PostMethod 上传文件

    PostMethod是HttpClient中用于执行POST请求的类,适合用来提交数据,包括文件上传。 二、PostMethod上传文件 1. 文件读取:首先,我们需要读取本地文件内容,通常使用FileInputStream或BufferedReader等流式API。 2...

    https+spring3+httpclient4多文件上传

    标题 "HTTPS + Spring3 + HttpClient4 多文件上传" 涉及到的是在Java环境中,使用Spring3框架和Apache HttpClient4库实现通过HTTPS协议上传多个文件的技术。这个主题涵盖了几大关键知识点,包括HTTPS安全通信、...

    HttpClient 模仿表单上传文件

    在标题"HttpClient模仿表单上传文件"中,我们关注的是如何使用HttpClient来模拟浏览器的表单提交,尤其是涉及到文件上传的场景。在描述中虽然没有具体信息,但通常这种情况会涉及multipart/form-data编码,这是HTML...

    httpclient4上传文件中文乱码问题解决办法代码示例

    服务器端自己写,本示例为客户端代码,可以解决httpClient4乱码问题,是替代修改源码的最佳写法。

    四、使用HttpClient上传测试文件服务器

    我们先来理解一下HttpClient的基本概念,然后逐步探讨文件上传的步骤。 HttpClient是由Apache软件基金会开发的一个开源项目,它提供了一个强大的、灵活的、高度可定制的HTTP客户端接口。HttpClient支持多种HTTP方法...

    httpclient上传文件

    用httpcient上传文件,用httpclient上传文件

    HttpClient实现POST GET和文件下载

    文件上传通常涉及Multipart/form-data格式,可以使用`MultipartEntityBuilder`来构造请求实体: 1. **创建HttpPost请求**:设定目标URL。 2. **构建MultipartEntity**:使用`MultipartEntityBuilder`添加文件和其他...

Global site tag (gtag.js) - Google Analytics