首页>代码>java web servlet文件上传到服务器源代码下载>/FileUpAndDown/src/com/wf/web/FileUpLoadServlet.java
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  LV8 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日
顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友