适用框架:SSH
简单思路:利用集合,遍历上传
实现过程:
第一步:前端
<form action="per_importFiles" enctype="multipart/form-data" method="post" >
上传文件:<input type="file" name="file1"><br/>
上传文件: <input type="file" name="file1"><br/> <!-- 两个名字相同 都是file1 -->
<input type="submit" value="提交"/>
</form>
第二步:后端
private List<File> file1;//多个上传文件
private List<String> file1FileName;//文件名集合
public String importFiles() throws Exception {
// 得到文件上传的服务器路径
HttpServletRequest request = ServletActionContext.getRequest();
String path = request.getSession().getServletContext().getRealPath("")+ "\\upload\\";
//创建一个StringBuffer,记录上传的文件名,方便传进数据库
StringBuffer sb = new StringBuffer();
for (int i = 0; i < file1.size(); i++) {
// 解决文件同名问题
String filename = file1FileName.get(i);
filename = UUID.randomUUID().toString().replace("-", "")+ filename.substring(filename.lastIndexOf("."));
// 定义服务器的新文件
File file = new File(path + filename);
// 真正上传
FileUtils.copyFile(file1.get(i), file);
sb.append(filename+",");
}
//StringBuffer转String,并去除最后的一个逗号
String filenames = sb.toString().substring(0, sb.length()-1);
System.out.println(filenames);
return "list";
}
//setter和getter方法
public List<File> getFile1() {
return file1;
}
public void setFile1(List<File> file1) {
this.file1 = file1;
}
public List<String> getFile1FileName() {
return file1FileName;
}
public void setFile1FileName(List<String> file1FileName) {
this.file1FileName = file1FileName;
}
后台输出filenames,显示图片时,先分割,后遍历即可
2a673961d7db4285abc1288baa8519ab.jpg,f598448f9d8748359adee27eda37156a.jpg