1.在<form>標籤中必須加入enctype="multipart/form-data"屬性
例如:<form action="successcase.do?method=modify2" method="post" enctype="multipart/form-data" onsubmit="return check()">
2.在<input>標籤中必須有name屬性
例如:<input type="text" name="title" size="50" id="title"/>
3.在Action中的代碼:
boolean p=true;//是否使用預設圖片
DiskFileItemFactory factory = new DiskFileItemFactory();
ServletFileUpload upload = new ServletFileUpload(factory);
List<FileItem> items = upload.parseRequest(request);
Iterator<FileItem> it = items.iterator();
while (it.hasNext()) {
FileItem tempitem = it.next();//取得表單中的一個元素
String itemName = tempitem.getFieldName();//取得input標籤的name屬性值
if (tempitem.isFormField()) {//判斷這個元素type是否為text,FCKediter也返回true
String content = tempitem.getString("gbk");
if (itemName.equals("title")) {
sc.setTitle(content);
} else if (itemName.equals("content")) {
sc.setContent(content);
}
}else {//type是file,上傳的檔案
if(tempitem.getName()==""){//如果沒有上傳檔案,就使用預設檔案
continue;
}
if (!FileDocumentUtil.existDocument(request
.getRealPath("/")+"successimages//")) {
FileDocumentUtil.createDocument(request
.getRealPath("/")+ "successimages//");
}
File tempfile= new File(request.getRealPath("/")+"successimages//"+new File(tempitem.getName()).getName());
tempitem.write(tempfile);
sc.setPicture(tempfile.getCanonicalPath());
p=false;
}
}
if(p){
sc.setPicture(request.getRealPath("/")+"images//LOGO1.jpg");
}