81,092
社区成员
发帖
与我相关
我的任务
分享
package com.cms.servlet;
import java.io.File;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
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.FileUploadException;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
import org.apache.commons.io.FileUtils;
import com.cms.controllers.manage.ImagesController;
import com.cms.models.Images;
import com.cms.utils.ImageUtil;
@SuppressWarnings("serial")
public class Upload extends HttpServlet {
@SuppressWarnings("unchecked")
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
ImagesController imagesController = new ImagesController();
Images images = new Images();
images.setNewsid(Integer.parseInt(request.getParameter("id")));
images.setTitle("");
//构造上传文件全路径
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Calendar cal = Calendar.getInstance();
String appPath = request.getSession().getServletContext().getRealPath("/").replaceAll("\\\\", "\\\\\\\\");
String path = "resource/"+"UserFiles/"+sdf.format(cal.getTime())+"/";
File f = new File(appPath+path);
if(!f.exists()){
f.mkdirs();
}
String savePath = this.getServletConfig().getServletContext().getRealPath("");
savePath = appPath+path;//savePath + "/uploads/"
File f1 = new File(savePath);
//System.out.println(savePath);
if (!f1.exists()) {
f1.mkdirs();
}
DiskFileItemFactory fac = new DiskFileItemFactory();
ServletFileUpload upload = new ServletFileUpload(fac);
upload.setHeaderEncoding("utf-8");
List fileList = null;
try {
fileList = upload.parseRequest(request);
} catch (FileUploadException ex) {
return;
}
Iterator<FileItem> it = fileList.iterator();
String name = "";
String extName = "";
int i=0;
while (it.hasNext()) {
i++;
FileItem item = it.next();
if (!item.isFormField()) {
name = item.getName();
//System.out.println("上传的文件有:"+item.getName());
//long size = item.getSize();
//String type = item.getContentType();
//System.out.println(size + " " + type);
if (name == null || name.trim().equals("")) {
continue;
}
// 扩展名格式:
if (name.lastIndexOf(".") >= 0) {
extName = name.substring(name.lastIndexOf(".")).toLowerCase();
}
File file = null;
do {
// 生成文件名:
name = System.currentTimeMillis()+"";
file = new File(savePath + name + extName);
} while (file.exists());
File saveFile = file;new File(savePath + name + extName);
try {
item.write(saveFile);
} catch (Exception e) {
e.printStackTrace();
}
}
}
response.getWriter().print(name + extName);
}
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doPost(request, response);
}
}