下面这段代码就是个上传的功能,现在是这样的,比如我连续上传3个文件a.doc,b.doc,c.doc,然后用 session.setAttribute("filespath",str);
把名称存下来,可是每次存的都是c.doc,我看了下,应该是在session里面,每次上传都把前一个的文件名称给覆盖了,所以都保存的是最后一个名称,我想把这3个名称都保存下来。。。。大家看下啊。
我在别的页面上去掉用
String zlfielpath = (String)session.getAttribute("filespath");
[code="java"]
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
HttpSession session = request.getSession();
DiskFileItemFactory factory = new DiskFileItemFactory();
// 设置内存缓冲区,超过后写入临时文件
factory.setSizeThreshold(10240000);
// 设置临时文件存储位置
String root = request.getRealPath("")+"\upwordzl";
String saveurl=root+"\";
File file = new File(saveurl);
if(!file.exists())
//file.mkdirs(); 创建文件夹
factory.setRepository(file);
ServletFileUpload upload = new ServletFileUpload(factory);
// 设置单个文件的最大上传值
upload.setFileSizeMax(10002400000l);
// 设置整个request的最大值
upload.setSizeMax(10002400000l);
upload.setHeaderEncoding("UTF-8");
try {
List<?> items = upload.parseRequest(request);
FileItem item = null;
String fileName = null;
String str = "";
for (int i = 0 ;i < items.size(); i++){
item = (FileItem) items.get(i);
fileName = saveurl + File.separator + item.getName();
// 保存文件
if (!item.isFormField() && item.getName().length() > 0) {
item.write(new File(fileName));
str =item.getName()+"★";
}
}
session.setAttribute("filespath",str);//保存名称,
} catch (FileUploadException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
}
[/code]