圖片上傳我給他分3部分:
第一部分是jsp頁面:
<form action="advertise_advertiseSave.action" method="post" name="form"
enctype="multipart/form-data" >
<tr>
<td nowrap align="right" width="6%">廣告附圖:</td>
<td width="34%">
<input name="fileUpload" type="file" id="advertisePic" style="width:200px" title="廣告附圖" value="選擇" />
</td>
</tr>
</form>
第二部分是工具部分(即最關鍵的圖片上傳的代碼)
/**
*
*/
package com.wyp.util;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import javax.servlet.http.HttpServletRequest;
import org.apache.struts2.ServletActionContext;
/**
* @author Wyp
*
*/
public class PictureUpload {
DateFormat df = new SimpleDateFormat("yyyyMMdd-hh-mm-ss-");
String questionTime = df.format(new Date());
HttpServletRequest request = ServletActionContext.getRequest();
public String PicUpload(File fileUpload, String fileUploadFileName,
String fileUploadContentType, String savePath) throws Exception {
// 以服務器的文件保存地址和原文件名建立上傳文件輸出流
FileOutputStream fos = new FileOutputStream(ServletActionContext
.getRequest().getRealPath(savePath)
+ "\\"
+ questionTime
+ fileUploadFileName);
// 以上傳文件建立一個文件上傳流
FileInputStream fis = new FileInputStream(fileUpload);
// 將上傳文件的內容寫入服務器
byte[] buffer = new byte[1024];
int len = 0;
while ((len = fis.read(buffer)) > 0) {
fos.write(buffer, 0, len);
}
String savePicName = request.getContextPath() + savePath + "/"
+ questionTime + fileUploadFileName.toString();
return savePicName;
}
}
第三部分是action部分:(處理jsp頁面傳過來的信息並使用圖片上傳工具)
1.必須的聲明:(每個都要配備鄉相應的set和get方法)
private File fileUpload;
private String fileUploadFileName;
private String fileUploadContentType;
private String savePath;
2.實現代碼(這是一個方法,用於數據庫保存提交的信息,可篩選出需要的使用):
public String advertiseSave() throws Exception{
this.savePath = "/images/"; //此處爲你的項目下的一個文件夾
// 先判斷fileUpload是否爲空
if(fileUpload==null){
}else{
PictureUpload fileUp = new PictureUpload();
String adverisetPicName = fileUp.PicUpload(fileUpload,
fileUploadFileName, fileUploadContentType, savePath);
this.advertisement.setAdvertisePic(adverisetPicName);
//System.out.println("圖片上傳的名稱爲:" + adverisetPicName+"2222222"+fileUploadFileName);
//此處是圖片上傳的處理代碼
}
if(this.advertiseService.advertiseAdd(this.advertisement)){
return "advertise_save_success";
}else{
return "advertise_save_failed";
}
}
最後的最後千萬注意jsp頁面中的input標籤的name屬性的值和action中的File參數要一樣!!!這樣就完事了。。。