日期:2014-05-17  浏览次数:20789 次

jsp上传下载.急...
谁能给我发一个可以设置路径的上传下载的DEMO.
最好要简单点的.
本人比较笨
谢谢各位帮忙.
我在线等..急急急急急急急急急

------解决方案--------------------
上传的例子 “下载就是HERf你懂得”


Java code

public static void copy(File src, File dst)  {
        try  {
           InputStream in = null ;
           OutputStream out = null ;
         /*  File fl1=new File(Auxiliary.getStr(dst.getPath()));
           if(!fl1.exists()){
               fl1.mkdirs();
           }*/
           
            try  {                
               in = new BufferedInputStream( new FileInputStream(src), BUFFER_SIZE);
               out = new BufferedOutputStream( new FileOutputStream(dst), BUFFER_SIZE);
                byte [] buffer = new byte [BUFFER_SIZE];
                while (in.read(buffer) > 0 )  {
                   out.write(buffer);
               } 
            } finally  {
                if ( null != in)  {
                   in.close();
               } 
                 if ( null != out)  {
                   out.close();
               } 
           } 
        } catch (Exception e)  {
           e.printStackTrace();
       } 
   } 
复制的方法

------解决方案--------------------
这是我的
Java code

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.PrintWriter;
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.FileUploadException;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;

public class UploadServlet extends HttpServlet {

    public void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        doPost(request, response);
    }

    public void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        response.setContentType("text/html;charset=gb2312");
        PrintWriter out = response.getWriter();

        String uploadDir = this.getServletContext().getRealPath("/upload");

        if (uploadDir == null) {
            out.println("无法访问储存目录!");
            return;
        }

        File FUploadDir = new File(uploadDir);
        if (!FUploadDir.exists()) {
            // 创建目录`
            if (!FUploadDir.mkdir()) {
                out.print("无法创建存储目录!");
                return;
            }
        }

        boolean isMultipart = ServletFileUpload.isMultipartContent(request);
        if (!isMultipart) {
            out.print("只能处理multipart/form-data类型的数据");
            return;
        }

        DiskFileItemFactory factory = new DiskFileItemFactory();
        factory.setSizeThreshold(1024 * 1024 * 5);// /超过5M的字段数据采用临时文件缓存
        // 采用默认的临时文件存储位置
        // fu.setRepositoryPath(...);
        // 设置上传的普通字段的名称和文件字段的文件名所采用的字符集编码

        ServletFileUpload upload = new ServletFileUpload(factory);
        upload.setSizeMax(1024 * 1024 * 200); // 最多上传200M数据
        upload.setHeaderEncoding("gb2312");

        // 得到所有表单字段对象的集合
        List items = nul