请问谁有文件上传或下载的jsp源代码实例。最好是不用struts的,用struts的也要。
源代码最好说明用到了哪些包,谢谢。
jsp1:
<form action="imgUpLoad2.jsp" enctype="multipart/form-data" method="post">
<input type="file" name="myfile">
<input type="submit" value="上传">
</form>
jsp2:
<%@ page contentType="text/html;charset=gb2312"%>
<jsp:useBean id="Upload" scope="page" class="imis.ImgUpload"/>
<%
   Upload.doPost(request);
%>java:
package imis;
import 。。//请补充
public class ImgUpload{
   //请补充
}

解决方案 »

  1.   

    Jquery的fileupload组件,任何html元素都可以初始化为文件上传(比如<a>,<div>),操作API很方便,服务端用apache的commom包即可网上google一把,一堆实例
      

  2.   


    import java.io.File;
    import java.io.IOException;
    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 { private static final long serialVersionUID = 1L; private String relativePath; public void init() {
                    //在web.xml中配置上传目录的相对路径
    relativePath = getServletConfig().getInitParameter("relativePath");
    } public void doGet(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
    doPost(request, response);
    } @SuppressWarnings("unchecked")
    public void doPost(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {

    String realPath=getServletContext().getRealPath(relativePath);

    DiskFileItemFactory factory = new DiskFileItemFactory();
    ServletFileUpload uploader = new ServletFileUpload(factory);

    try {
    List<FileItem> fileItems = uploader.parseRequest(request); for (int i = 0; i < fileItems.size(); i++) {
    FileItem fileItem = fileItems.get(i);
    if (fileItem.isFormField()) {
    System.out.println(fileItem.getFieldName() + "="+ fileItem.getString("UTF-8"));
    } else {
    if (!"".equals(fileItem.getName())&& fileItem.getName() != null) {
    File file = new File(fileItem.getName());
    File saveDir = new File(realPath+ File.separator, file.getName());
    fileItem.write(saveDir);
    response.setContentType("text/html;charset=utf-8");
    response.getWriter().println("上传成功");
    }
    }
    }
    } catch (FileUploadException e) {
    e.printStackTrace();
    } catch (Exception e) {
    e.printStackTrace();
    }
    }}
    web.xml配置<servlet>
        <servlet-name>uploadServlet</servlet-name>
        <servlet-class>servlet.UploadServlet</servlet-class>
        <init-param>
         <param-name>relativePath</param-name>
         <param-value>/attachment</param-value>
        </init-param>
      </servlet>
      <servlet-mapping>
        <servlet-name>uploadServlet</servlet-name>
        <url-pattern>/uploadServlet</url-pattern>
      </servlet-mapping>
      

  3.   

    用jspsmartupload组件
    或者用fileupload组件package com.qhit.servlet;import java.io.IOException;
    import java.io.PrintWriter;import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;import com.jspsmart.upload.*;public class UploadServlet extends HttpServlet { /**
     * Destruction of the servlet. <br>
     */
    public void destroy() {
    super.destroy(); // Just puts "destroy" string in log
    // Put your code here
    } public void doGet(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
    this.doPost(request, response);
    } public void doPost(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
    PrintWriter out = response.getWriter();
    // 新建一个SmartUpload对象
    SmartUpload su = new SmartUpload();
    // 上传初始化
    su.initialize(this.pageContext);
    // 设定上传限制
    // 1.限制每个上传文件的最大长度。
    // su.setMaxFileSize(10000);
    // 2.限制总上传数据的长度。
    // su.setTotalMaxFileSize(20000);
    // 3.设定允许上传的文件(通过扩展名限制),仅允许doc,txt文件。
    // su.setAllowedFilesList("doc,txt");
    // 4.设定禁止上传的文件(通过扩展名限制),禁止上传带有exe,bat,
    //jsp,htm,html扩展名的文件和没有扩展名的文件。
    // su.setDeniedFilesList("exe,bat,jsp,htm,html,,");
    // 上传文件
    su.upload();
    // 将上传文件全部保存到指定目录
    int count = su.save("/upload");
    out.println(count+"个文件上传成功!<br>");

    // 利用Request对象获取参数之值
    out.println("TEST="+su.getRequest().getParameter("TEST")
    +"<BR><BR>"); // 逐一提取上传文件信息,同时可保存文件。
    for (int i=0;i<su.getFiles().getCount();i++)
    {
    com.jspsmart.upload.File file = su.getFiles().getFile(i);

    // 若文件不存在则继续
    if (file.isMissing()) continue; // 显示当前文件信息
    out.println("<TABLE BORDER=1>");
    out.println("<TR><TD>表单项名(FieldName)</TD><TD>"
    + file.getFieldName() + "</TD></TR>");
    out.println("<TR><TD>文件长度(Size)</TD><TD>" + 
    file.getSize() + "</TD></TR>");
    out.println("<TR><TD>文件名(FileName)</TD><TD>" 
    + file.getFileName() + "</TD></TR>");
    out.println("<TR><TD>文件扩展名(FileExt)</TD><TD>" 
    + file.getFileExt() + "</TD></TR>");
    out.println("<TR><TD>文件全名(FilePathName)</TD><TD>"
    + file.getFilePathName() + "</TD></TR>");
    out.println("</TABLE><BR>"); // 将文件另存
    // file.saveAs("/upload/" + myFile.getFileName());
    // 另存到以WEB应用程序的根目录为文件根目录的目录下
    // file.saveAs("/upload/" + myFile.getFileName(), su.SAVE_VIRTUAL);
    // 另存到操作系统的根目录为文件根目录的目录下
    // file.saveAs("c:\\temp\\" + myFile.getFileName(), su.SAVE_PHYSICAL);
    } } public void init() throws ServletException {
    }}
      

  4.   

    好多谢大家的意见,谢谢啦。请问jspsmartupload可以支持多个文件上传,而且有更多的参数设置?
      

  5.   

    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;
    在MyEclipse软件显示无这个包,请问哪位大哥有,我qq710255169,传给我或者发邮件,谢谢