图片上传我给他分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参数要一样!!!这样就完事了。。。