前台用的是jquery-uploadify插件。后台的处理action贴下,不知道对你有没有用处。
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.FileItemFactory;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;public class UploadServlet extends HttpServlet {
/**
 * 批量上传可以通过这种方法来实现。
 */
@SuppressWarnings("unchecked")
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.setCharacterEncoding("utf-8");  
FileItemFactory  factory = new DiskFileItemFactory();
ServletFileUpload upload = new ServletFileUpload(factory);

try {
List<FileItem> list = upload.parseRequest(request);
System.out.println(list.size());
for (int i = 0; i < list.size(); i++) {
FileItem fileItem = list.get(i);
System.out.println(fileItem);
if(null!=fileItem.getName()){
String name = fileItem.getName().substring(fileItem.getName().lastIndexOf("\\") + 1);//截取了文件的名字
System.out.println(name);
String fileName = "C:\\Users\\simaa\\Desktop\\generic\\"+DateTool.getDateTime(DateTool.DEFAULT_DATE_FORMAT1).trim()+"\\" ;
File file = new File(fileName);
if(!file.exists()){//判断这个路径存不存在。
Boolean flag = file.mkdirs();//如果不存在,则创建这个路径
}
request.getSession().setAttribute(name, true);
fileItem.write(new File(fileName + name));
continue ;
}
}
} catch (Exception e) {
request.getSession().setAttribute("errorObj", false);
e.printStackTrace();
}
}
}

解决方案 »

  1.   


    我用的方法试了一下,list.size为0,不知什么原因
      

  2.   

    可以通过ActionForm来取。。在form里面定义一个 FormFile 的字段来获取file的路径。。                    ImportFile  file=new ImportFile();
        GoodsForm goodsform  = (GoodsForm) form;;
        FormFile formfile = goodsform.getFormFile();
        InputStream fis = null;
        try {
    fis = formfile.getInputStream();
    } catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    request.setAttribute("error", "导入数据时出现异常!");
    return new ActionForward("/fg-error.jsp");
    }
        file.readExcel(fis);
               return new ActionForward("/bg-progressOK.jsp");