关于使用common-fileupload组件实现上传下载。其中的上传和下载的jsp怎么编写

解决方案 »

  1.   

    消息零回复,这个应该转到java版块去问
      

  2.   


    @Override
    public void doPost(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
    request.setCharacterEncoding("utf-8"); if (ServletFileUpload.isMultipartContent(request)) {
    FileItemFactory df = new DiskFileItemFactory();
    ServletFileUpload upload = new ServletFileUpload(df);
    try {
    List<FileItem> files = upload.parseRequest(request);
    for (FileItem fi : files) {
    if (!fi.isFormField()) {
    String filePath = request.getSession()
    .getServletContext()
    .getRealPath("/uploadFiles");
    new File(filePath).mkdirs();
    File file = new File(filePath, fi.getName());
    OutputStream fos = new FileOutputStream(file);
    byte[] b = new byte[1024];
    InputStream is = fi.getInputStream();
    int readSize = -1;
    while ((readSize = is.read(b)) > 0) {
    fos.write(b, 0, readSize);
    }
    fos.close();
    is.close();
    System.out.println("upfile:" + fi.getFieldName());
    } else {
    System.out.println(fi.getFieldName() + ":"
    + fi.getString());
    }
    } } catch (FileUploadException e) {
    response.setStatus(302);
    response.getOutputStream().write("no success".getBytes());
    }
    }
    response.getOutputStream().write("success".getBytes());页面上怎么写就不用说了吧。这是我测试的代码,没有添加注释将就着看,不行就看看API或去网上找找资料。
    下载的话看你怎么使用。如果是从硬盘上下载,直接把连接连到硬盘上的文件就可以下载。如果是放到数据库中的话,设置response的类型后使用二进制传递。