[讨论]小弟刚学JSP。遇到了一个很麻烦的问题
在使用Fileupload组件上传文件是时候,上传后的文件全都打不开。文件名称和大小都没改变。属性也没变。。但就是打不开。如果是图片就不能显示。是压缩文件就不能解压,说什么文件已被破坏。。搞了两天 都不知道是哪里错了!高手救命啊!附上源码:<%@ page import="org.apache.commons.fileupload.*" %>
<%@ page import="java.util.List" %>
<%@ page import="java.util.Iterator" %>
<%@ page import="java.io.File" %>
<%@ page contentType="text/html;charset=gb2312" %>
<%
String temp=getServletContext().getRealPath("/")+"temp"; //临时目录
String loadpath=getServletContext().getRealPath("/")+"upload"; //上传文件存放目录
DiskFileUpload fu = new DiskFileUpload();
fu.setSizeMax(10000000); // 设置允许用户上传文件大小,单位:字节
fu.setSizeThreshold(40960); // 设置最多只允许在内存中存储的数据,单位:字节
fu.setRepositoryPath(temp); // 设置一旦文件大小超过getSizeThreshold()的值时数据存放在硬盘的目录
//开始读取上传信息
List fileItems = fu.parseRequest(request);
Iterator iter = fileItems.iterator();
while (iter.hasNext()) {
FileItem item = (FileItem) iter.next();// 忽略其他不是文件域的所有表单信息
if (!item.isFormField()) {
String name = item.getName();//获取上传文件名,包括路径
name=name.substring(name.lastIndexOf("\\")+1);//从全路径中提取文件名
out.println(name);
long size = item.getSize();
if((name==null||name.equals("")) && size==0)
continue;
out.println(item.getName()+" Size="+item.getSize()+"<br>");//输出上传文件信息
File fNew= new File(loadpath, name);
item.write(fNew).tostring();
}
}
%>