package com.wf.web;
import java.io.File;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
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.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
/**
* @author chenkui
*
*/
@WebServlet("/upanddownServlet")
public class FileUpLoadServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
@Override
protected void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException {
// 在自己的项目中构造出一个用于存放用户照片的文件
String projectpath = this.getServletContext().getRealPath("/upload/");
System.out.println(projectpath);
String projectpathTemp = this.getServletContext().getRealPath(
"/tempload/");
// 如果文件不在,则构造此文件
File file = new File(projectpath);// 上传文件保存位置
File tempfile = new File(projectpathTemp);// 上传缓存临时文件夹
if (!file.exists()) {
file.mkdir();
}
if (!tempfile.exists()) {
tempfile.mkdir();
}
// 获取image的路径
// String headImage=request.getParameter("headImage");
// 判断是否上传文件表单,也就是form中是否有enctype="multipart/form-data"项;必须post提交,get提交对内容长度有限制
if (ServletFileUpload.isMultipartContent(request)) {
DiskFileItemFactory factory = new DiskFileItemFactory();
factory.setSizeThreshold(1024 * 512);// 设置缓冲区大小
factory.setRepository(tempfile);// 设置临时文件夹
ServletFileUpload fileUpload = new ServletFileUpload(factory);
fileUpload.setFileSizeMax(10 * 1024 * 1024);// 设置最大文件大小
try {
@SuppressWarnings("unchecked")
List<FileItem> items = fileUpload.parseRequest(request);// 获取所有表单
for (FileItem item : items) {
// 判断当前的表单控件是否是一个普通控件
if (!item.isFormField()) {
// 是一个文件控件时
String name = item.getName();
System.out.println("上传文件名:" + name);
System.out.println("文件大小:" + item.getSize());
String extName = name.substring(name.lastIndexOf("."));
String newName = new SimpleDateFormat(
"yyyyMMDDHHmmssms").format(new Date());
System.out.println("扩展名" + extName);
item.write(new File(projectpath +"//"+ newName + extName));
} else {
// 是普通控件时
String desc = item.getString("UTF-8");
System.out.println("文件描述" + desc);
}
}
} catch (Exception e) {
e.printStackTrace();
}
} else {
throw new RuntimeException("请设置form表单的enctype属性");
}
response.sendRedirect("success.jsp");
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
doGet(req, resp);
}
}
最近下载更多
15827485252 LV19
2022年3月14日
明123456 LV11
2021年5月27日
最代码-宋家辉 LV61
2021年5月16日
zx54321 LV12
2021年3月30日
小仙女本仙haha LV8
2020年6月20日
zhujunnan LV12
2020年6月9日
qq5101437 LV8
2020年4月17日
tonghao LV18
2019年7月30日
12345678_ LV8
2019年7月19日
liuyan1234 LV9
2019年4月27日
最近浏览更多
xiongwei11231 LV9
2023年12月2日
uni-code_0123 LV1
2023年11月11日
lcqlcl LV11
2023年8月29日
siximu912 LV10
2023年2月22日
2517786374 LV4
2022年11月28日
zw050256 LV7
2022年9月30日
yymmdm LV6
2022年9月5日
1635162218 LV9
2022年5月31日
Zeorwyc LV8
2022年4月21日
15827485252 LV19
2022年3月14日

