📄 uploadfile.java
字号:
package com.puckasoft.video312.upload;
import java.io.File;
import java.io.IOException;
import java.util.Date;
import java.util.Iterator;
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 UploadFile extends HttpServlet {
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//原理性实验
// InputStream is = request.getInputStream(); //获得request的输入流
// FileOutputStream fos = new FileOutputStream(new File("d:/testUpload.jpg"));
// byte[] b = new byte[1024];
// while(is.read(b)!=-1){
// fos.write(b);
// }
// is.close();
// fos.close();
String tempDirectory = "d:/temp/"; //要在最后加上斜杠:temp/
try {
int sizeThreshold = 1024 * 64; //写满该大小的缓存后,存入硬盘中。
File repositoryFile = new File(tempDirectory);
FileItemFactory factory = new DiskFileItemFactory(sizeThreshold, repositoryFile);
ServletFileUpload upload = new ServletFileUpload(factory);
upload.setSizeMax(500 * 1024 * 1024); // set every upload file'size less than 500M
List items = upload.parseRequest(request); //这里开始执行上传
Iterator iter = items.iterator();
while (iter.hasNext()) {
FileItem item = (FileItem) iter.next(); //FileItem就是表示一个表单域数据
if(item.isFormField()){ //isFormField方法用于判断FileItem是否代表一个普通表单域(即非file表单域)
System.out.println("***"+item.getFieldName());
}else {
String fieldName = item.getFieldName(); //获取表单域name属性的值
String fileName = item.getName(); //返回该文件在客户机上的文件名。e.g: e:\dianying\\video\1.wmv
System.out.println("getFieldName:"+fieldName);
System.out.println("getName:"+fileName);
File uploadedFile = new File("d:/video/"+new Date().getTime()+fileName.substring(fileName.lastIndexOf(".")));
item.write(uploadedFile);
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -