package com.t59.action;
import java.io.File;
import java.util.ArrayList;
import java.util.Date;
import java.util.Iterator;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileUpload;
import org.apache.commons.fileupload.RequestContext;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
import org.apache.commons.fileupload.servlet.ServletRequestContext;
import com.t59.model.dto.Picinfo;
/**
* 文件上传
*
* @author Administrator
*
*/
public class Upload {
/**
* 上传图片
*
* @param request
* @param path图片上传路径
* @return 上传成功后的图片路径
* @throws Exception
*/
public static Picinfo upLoadFile(HttpServletRequest request,String path)
throws Exception {
request.setCharacterEncoding("gbk");
RequestContext requestContext = new ServletRequestContext(request);
// 得到图片信息
Picinfo pic = new Picinfo();
// System.out.println(path);
if (FileUpload.isMultipartContent(requestContext)) {
DiskFileItemFactory factory = new DiskFileItemFactory();
// 得到新的文件路径
factory.setRepository(new File("c:/"));
// factory.setRepository(new File(path));
ServletFileUpload upload = new ServletFileUpload(factory);
upload.setSizeMax(2000000);
List items = new ArrayList();
items = upload.parseRequest(request);
Iterator it = items.iterator();
while (it.hasNext()) {
FileItem fileItem = (FileItem) it.next();
if (fileItem.isFormField()) {
String fieldName = fileItem.getFieldName();
if(fieldName.equals("uuid")){
pic.setUuid(Integer.parseInt(new String(fileItem.getString().getBytes("iso8859-1"), "gbk")));
}else if(fieldName.equals("piccontent")){
pic.setPiccontent(new String(fileItem.getString().getBytes("iso8859-1"), "gbk"));
}else if(fieldName.equals("picsate")){
pic.setPicsate(Integer.parseInt(new String(fileItem.getString().getBytes("iso8859-1"), "gbk")));
}else if(fieldName.equals("sid")){
pic.setSid(Integer.parseInt(new String(fileItem.getString().getBytes("iso8859-1"), "gbk")));
}
} else {
//设置上传路径及文件名
if (fileItem.getName() != null && fileItem.getSize() != 0) {
String filenameTemp = new Date().getTime()+".jpg";
pic.setPicpath(path+filenameTemp);
File newFile = new File(path +filenameTemp);
fileItem.write(newFile);
} else {
System.out.println("文件没有选择 或 文件内容为空");
}
}
}
}
// System.out.println("上传成功");
return pic;
}
}