日期:2014-05-17  浏览次数:20761 次

关于FileUpload文件上传的问题,这错误是怎么回事
<%@ page contentType="text/html; charset=utf-8" language="java"
errorPage=""%>
<%@ page import="java.util.*,java.io.*"%>
<%@ page import="org.apache.commons.fileupload.disk.*"%>
<%@ page import="org.apache.commons.fileupload.servlet.*"%>
<%@ page import="org.apache.commons.fileupload.*"%>
<%@ page import="ip.IPTimeStamp"%>
<!doctype html>
<html>
<head>
<meta charset="utf-8">
</head>

<body>
<%
DiskFileItemFactory factory = new DiskFileItemFactory();
factory.setRepository(new File(request.getSession()
.getServletContext().getRealPath("/")
+ "uploadtemp"));
ServletFileUpload upload = new ServletFileUpload(factory);
upload.setFileSizeMax(3145728);
List<FileItem> items = upload.parseRequest(request);
Iterator<FileItem> iter = items.iterator();
IPTimeStamp its = new IPTimeStamp(request.getRemoteAddr());
while (iter.hasNext()) {
FileItem item = iter.next();
String fieldName = item.getFieldName();
if (!item.isFormField()) {
File saveFile = null;
InputStream input = item.getInputStream();
OutputStream output = new FileOutputStream(new File(request
.getSession().getServletContext().getRealPath("/")
+ "upload"
+ File.separator
+ its.getIPTimeRand()
+ "." + item.getName().split("\\.")[1]));
byte data[] = new byte[4096];
int temp = 0;
while ((temp = input.read(data, 0, 4096)) != -1) {
output.write(data);
}
input.close();
output.close();
} else {
String value = item.getString();
%>
普通参数:
<%=value%>
<%
}
}
%>
</body>
</html>

这是JSP的页面
package ip;

import java.text.SimpleDateFormat ;
import java.util.Date ;
import java.util.Random ;
public class IPTimeStamp {
private SimpleDateFormat sdf = null ;
private String ip = null ;
public IPTimeStamp(){
}
public IPTimeStamp(String ip){
this.ip = ip ;
}
public String getIPTimeRand(){
StringBuffer buf = new StringBuffer() ;
if(this.ip != null){
String s[] = this.ip.split("\\.") ;
for(int i=0;i<s.length;i++){
buf.append(this.addZero(s[i],3)) ;
}
}
buf.append(this.getTimeStamp()) ;
Random r = new Random() ;
for(int i=0;i<3;i++){
buf.append(r.nextInt(10)) ;
}
return buf.toString() ;
}
public String getDate(){
this.sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS") ;
return this.sdf.format(new Date()) ;
}
public String getTimeStamp(){
this.sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS") ;
r