import java.util.ArrayList;
import java.util.Date;
import java.util.Iterator;
import java.util.List;import javax.servlet.mons.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 class javabeanimport com.t59.model.dto.Picinfo; /**
* 文件上傳
*
* @author 小月
*
*/
public class Upload {
/**
* 上傳圖片
*
* @param request
* @param path 圖片上傳路徑
* @return picture infomation * @throws Exception
*/
public static Picinfo upLoadFile(HttpServletRequest request,String path)
throws Exception {//設置編碼 當然 妳可以使用過濾器filter 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;
}
}