因为jspsmartupload.jar已经很久没有更新,而且它在上传大文件时会有问题,建议使用commons-fileupload.jar
在开始JSP上传文件之前你要准备以下几个东西:
1. commons-FileUpload 1.2 包
下载地址:http://jakarta.apache.org/commons/fileupload/
2. commons-IO 1.4 包
下载地址:http://jakarta.apache.org/commons/io/
3. Commons-BeanUtils 1.8.3 包
下载地址:http://jakarta.apache.org/commons/beanutils/
下面为部分源代码:
/**Create a factory for disk-based file items*/
DiskFileItemFactory factory = new DiskFileItemFactory();
/**设置最大的内存大小*/
factory.setSizeThreshold(4096);
/**创建一个新的文件上传操作*/
ServletFileUpload upload = new ServletFileUpload(factory);
/**设置能上传的最大文件的大小*/
upload.setSizeMax(10*1024);
/**Parse the request*/
List fileItems = upload.parseRequest(request);
//开始读取上传信息
Iterator iter = fileItems.iterator();
// 依次处理每个上传的文件
while(iter.hasNext()) {
FileItem item = (FileItem) iter.next();
// 忽略其他不是文件域的所有表单信息
if (!item.isFormField()) {
String name = item.getName();
String endName = name.substring(name.lastIndexOf(".") + 1);
try{
item.write(new File(request.getRealPath("\\"+sUploadDir+FileName+"."+ endName)));
}catch(Exception e){
e.printStackTrace();
}