本文章的好处在于可以用于多个浏览器使用,多个上传
XML文件配置
<bean id="multipartResolver"
class="org.springframework.web.multipart.commons.CommonsMultipartResolver"
p:defaultEncoding="utf-8">
</bean>
封装类
package com.zxxy.bean;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import org.springframework.web.multipart.MultipartFile;
public class upLoad {
public static void getUpload(List<MultipartFile> mlist,HttpServletRequest req,String newsuppId,User u ){
String path=req.getServletContext().getRealPath("/actter");//得到服务器端地址
int i1=0;
for(MultipartFile mult:mlist){//MultipartFile自带解析方法
String oldeName=mult.getOriginalFilename();//得到老名字
if(oldeName!=null&&!"".equals(oldeName)){
//修改后的名字=毫秒值+原来的老名字
String newName=System.currentTimeMillis()+oldeName;//新名字,避免名字重复所以取时分秒
int xiabiao=oldeName.lastIndexOf(".");//截取字符串
//得到后缀(三元运算符也可以分开写)
String suffix=xiabiao>0?oldeName.substring(xiabiao+1):"";
// if(xia>0){
// suffix=file.substring(xia+1);
// }else {
// suffix="";
// }
String realPath=path+"actter/"+getRiQi()+newName;
String newRealPath=path+"actter/"+getRiQi();
File f1=new File(newRealPath);
f1.getParentFile().mkdirs();//创建文件夹(多个上传)
// f1.getParentFile().mkdir();单个文件夹
Actter ac=new Actter();
ac.setOldname(oldeName);
ac.setSavename(newName);
ac.setAdddate(new Date());
ac.setSavepath(newRealPath);
try {
InputStream is=mult.getInputStream();
OutputStream os=new FileOutputStream(newRealPath);
byte[] bys=new byte[2048];
int len=0;
while((len=is.read(bys))!=-1){
os.write(bys, 0,len);
}
os.close();
is.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
public static String getRiQi(){
Calendar calendar=Calendar.getInstance();
StringBuffer sb=new StringBuffer();
sb.append(calendar.get(Calendar.YEAR)).append("/");
sb.append(calendar.get(Calendar.MONTH)+1).append("/");
sb.append(calendar.get(Calendar.DATE)).append("/");
return sb.toString();
}
}
Controller
Service层
public interface ActterService {
//添加附件
public boolean addActter(Actter a);
public List<Actter> findActter();
// //通过id找到对应的所有附件
public Actter findActterById(int id);
// //通过id找到对应的附件对象
// public Actter findActter(int id);