给我讲讲怎么在后台拿到上传的文件信息

解决方案 »

  1.   

    import java.io.BufferedInputStream;
    import java.io.BufferedOutputStream;
    import java.io.File;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import javax.servlet.Servlet;
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import org.apache.commons.fileupload.FileItemIterator;
    import org.apache.commons.fileupload.FileItemStream;
    import org.apache.commons.fileupload.disk.DiskFileItemFactory;
    import org.apache.commons.fileupload.servlet.ServletFileUpload;
    import org.apache.commons.fileupload.util.Streams;import edu.njust.manager.PathManager;import util.u;public class UploadFileServlet extends HttpServlet implements Servlet {
    /**
     * 
     */
    private static final long serialVersionUID = -6548227193711432825L;
    private File tmpDir = null;
    private File saveDir = null;
    private String failfileName=null;
    private String failpath=null; protected void doGet(HttpServletRequest request,
    HttpServletResponse response) throws ServletException, IOException {
    doPost(request, response);
    } protected void doPost(HttpServletRequest request,
    HttpServletResponse response) throws ServletException, IOException {
    try {
    String userid = (String) request.getSession()
    .getAttribute("userid");
    if(userid==null){
    u.p("未登录用户无法上传!");
    return;
    }
    String tmpPath = PathManager.FileUpload_Temp;
    String savePath = PathManager.FileUpload;
    tmpPath = tmpPath + userid + "\\";
    savePath = savePath + userid + "\\";
    failpath=savePath;
    this.saveDir = new File(savePath);
    this.tmpDir = new File(tmpPath);
    if (!(this.saveDir.isDirectory()))
    this.saveDir.mkdir();
    if (!(this.tmpDir.isDirectory()))
    this.tmpDir.mkdir(); request.setCharacterEncoding("UTF-8");
    if (ServletFileUpload.isMultipartContent(request)) {
    DiskFileItemFactory dff = new DiskFileItemFactory();
    dff.setRepository(this.tmpDir);
    dff.setSizeThreshold(1024000);
    ServletFileUpload sfu = new ServletFileUpload(dff);
    sfu.setFileSizeMax(109999999L);
    sfu.setSizeMax(999999999L);
    FileItemIterator fii = sfu.getItemIterator(request);
    while (fii.hasNext()) {
    FileItemStream fis = fii.next();
    if ((!(fis.isFormField())) && (fis.getName().length() > 0)) {
    System.out.println(fis.getName());
    String fileName = fis.getName();
    failfileName=fileName;
    BufferedInputStream in = new BufferedInputStream(fis
    .openStream());
    BufferedOutputStream out = new BufferedOutputStream(
    new FileOutputStream(new File(savePath
    + fileName)));
    Streams.copy(in, out, true);
    }
    }
    }
    } catch (Exception e) {
    e.printStackTrace();
    u.p(failpath+failfileName);
    File half=new File(failpath+failfileName);
    if(half.exists());{
    half.delete();
    }
    }
    }
    }
    这个GooUploader用的Servlet
      

  2.   

    读inputstream的时候慢慢解析吧,哈哈
      

  3.   

    跟struts2结合的,gooupload,有人写过吗
      

  4.   

    我写过,可参考inotgaoshou.javaeye.com