當前位置:編程學習大全網 - 源碼下載 - 如何運用Jsp+JavaBean+Servlet模式在Eclipse中實現圖片上傳?(具體代碼和分析)

如何運用Jsp+JavaBean+Servlet模式在Eclipse中實現圖片上傳?(具體代碼和分析)

註:class JavaBean:Picinfo{uuid輔助信息、piccontent圖片介紹、picsate輔助信息、sid輔助信息、Picpath圖片路徑} package com.xhy.action; import java.io.File;

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;

}

}

  • 上一篇:如何使用pascal進行哈希函數
  • 下一篇:關於郵票的資料
  • copyright 2024編程學習大全網