原文地址
package eao;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import javax.servlet.ServletContext;
import org.apache.struts2.ServletActionContext;
import util.PictureNameBuilder;
public class PictureEAO {
public static String[] savePicture(File[] pictures,String[] pictureFilename,String savePath){
//开一个和文件数组大小相同的字符串数组
String[] imgsrc=new String[pictures.length];
//获取项目上下文
ServletContext context=ServletActionContext.getServletContext();
//获取照片存储的相对地址在项目中应对应的全路径
String realSavePath=context.getRealPath(savePath);
//创建文件夹
File saveDirectory=new File(realSavePath);
if(!saveDirectory.exists()){saveDirectory.mkdirs();}
//处理图片
for(int i=0;i<imgsrc.length;i++){
//获取第i张图片的上传时的名称
String photoFileName=pictureFilename[i];
//获取第i张图片保存时的名称
String saveFileName=PictureNameBuilder.getPictureName();
//取文件后缀
String ext=photoFileName.substring(photoFileName.lastIndexOf("."));
//拼接得到文件的项目中存储地址
String outFilePath=realSavePath+"/"+saveFileName+ext;
//保存项目图片的相对地址,方便在网页中进行访问
imgsrc[i]=savePath+"/"+saveFileName+ext;
System.out.println("%%%%%%%%%%%%%%%%%%%%%%%% 截断前"+imgsrc[i]+"%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%");
imgsrc[i]=imgsrc[i].substring(1);
System.out.println("%%%%%%%%%%%%%%%%%%%%%%%% 截断后"+imgsrc[i]+"%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%");
try {
//开缓冲文件输入流,并将pictures[i]作为文件输入流传入
BufferedInputStream bis=new BufferedInputStream(new FileInputStream(pictures[i]));
//开缓冲文件输出流,并将outFilePath作为文件输出地址
BufferedOutputStream bos=new BufferedOutputStream(new FileOutputStream(outFilePath));
int tmp=-1;
//按为写入输出流
while ((tmp=bis.read())!=-1){
bos.write(tmp);
}
//将输出流中的内容写入文件
bos.flush();
//关闭两个流
bos.close();
bis.close();
} catch (Exception e) {
e.printStackTrace();
}
}
return imgsrc;
}
}