首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

httpClient 文件下传

2012-12-25 
httpClient 文件上传import java.io.Fileimport org.apache.commons.httpclient.HttpClientimport org.a

httpClient 文件上传

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


热点排行