代码编写不对
新版本中DiskFileUpload已经取消(depcreated)DiskFileItemFactory factory = new DiskFileItemFactory();
// maximum size that will be stored in memory
factory.setSizeThreshold(4096);
// the location for saving data that is larger than getSizeThreshold()
factory.setRepository(new File("c:\\temp"));
ServletFileUpload upload = new ServletFileUpload(factory);

解决方案 »

  1.   

    建议在后台写个servlet来调用。
      

  2.   

    正好这里有我昨天写的一个上传的测试例子,你可以看看。 不过要下载或者导入commons-fileupload.jar,commons-io.jar 这两个包。我自己测试过,可以用,不过只是一个测试的例子,如果你要用,可能还需要多修改下。如果改到了实际应用,记得也发一个给我学习学习。
    import java.io.File;
    import java.io.IOException;
    import java.io.PrintWriter;
    import java.util.Iterator;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.FileItemFactory;
    import org.apache.commons.fileupload.disk.DiskFileItemFactory;
    import org.apache.commons.fileupload.servlet.ServletFileUpload;public class FileUpload 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 { boolean isMultipart = ServletFileUpload.isMultipartContent(request);
    if(isMultipart){
    FileItemFactory factory = new DiskFileItemFactory();
    ServletFileUpload upload = new ServletFileUpload(factory);
    Iterator items;
    try{
    items = upload.parseRequest(request).iterator();
    while(items.hasNext()){
    FileItem item = (FileItem) items.next();
    if (!item.isFormField()){
    //取出上传文件的文件名称
    String name = item.getName();
    String fileName = name.substring(name.lastIndexOf('\\')+1,name.length());
    String path = request.getRealPath("file")+File.separatorChar+fileName;
    //上传文件
    File uploadedFile = new File(path);
    item.write(uploadedFile);
    //打印上传成功信息 response.setContentType("text/html");
    response.setCharacterEncoding("gb2312");
    PrintWriter out = response.getWriter();
    out.print("<font size='2'> 上传的文件为:"+name+"<br>");
    out.print("保存的地址为: "+path+"<font>");
    }
    }
    }catch(Exception e){
    e.printStackTrace();

    }
    }
    }
    }
    <!-- 文件上传 -->
    <servlet>
    <servlet-name>FileUpload</servlet-name>
    <servlet-class>servlet.test.FileUpload</servlet-class>
    </servlet>
    <servlet-mapping>
    <servlet-name>FileUpload</servlet-name>
    <url-pattern>/FileUpload</url-pattern>
    </servlet-mapping>
    <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
    <%
    String path = request.getContextPath();
    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
    %><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>
        <base href="<%=basePath%>">
        
        <title>commonfileupload上传文件示例</title>  </head>
      
      <body>
      <font size="2">
      commonfileupload上传文件示例<br>
      <form method="POST" action="FileUpload" ENCTYPE="multipart/form-data">
      文件 : <input type="file" name="file"/>
      <input type="submit" value="上传" name="submit"/>
     </form>
    </font>
    </body>
    </html>