上传文件
依赖类库:
1.commons-io.jar
2.commons-fileupload.jar
xml文件配置:
<!-- 配置文件上传 --> <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> <!-- 默认编码 --> <property name="defaultEncoding" value="utf-8" /> <!-- 文件大小最大值,单位字节 --> <property name="maxUploadSize" value="10485760000" /> <!-- 内存中的最大值,单位字节 --> <property name="maxInMemorySize" value="40960" /> </bean>
单文件上传:
index.jsp页面:
<form action="student/uploadPortrait.do" method="post" enctype="multipart/form-data"> <input type="file" name="portrait"> <button>上传</button> </form>
注意:
1.method属性值必须为post
2..enctype属性值为:multipart/form-data
业务处理代码:
@RequestMapping("/uploadPortrait")
public String uploadPortrait(HttpServletRequest request,
@RequestParam("portrait") CommonsMultipartFile portrait) {
try {
String url = request.getServletContext().getRealPath("/upload/");
System.out.println(url);
File file = new File(url);
if (!file.exists() && !file.isDirectory())
file.mkdirs();
String filename = new Date().getTime()
+ zhutu.getOriginalFilename();
FileOutputStream os = new FileOutputStream(url + filename);
FileInputStream in = (FileInputStream) zhutu.getInputStream();
byte[] buff = new byte[1024];
int len;
while((len=in.read(buff))!=-1){
os.write(buff,0,len);
}
os.flush();
os.close();
in.close();
} catch (Exception e) {
System.out.println("上传出错");
}
return "success";
}
多文件上传:
index.jap页面:
<form action="student/upload.do" method="post" enctype="multipart/form-data"> <input type="file" name="img"> <input type="file" name="img"> <input type="file" name="img"> <input type="file" name="img"> <button>上传</button> </form>
注意:
1.method属性值必须为post
2..enctype属性值为:multipart/form-data
3.input元素的name属性值相同
业务处理代码:
@RequestMapping("/upload")
public String upload(HttpServletRequest request,
@RequestParam("img") CommonsMultipartFile[] files) {
String url = request.getServletContext().getRealPath("/upload/");
File file = new File(url);
if (!file.exists() && !file.isDirectory()) {
try {
file.mkdirs();
} catch (Exception e) {
e.printStackTrace();
}
}
StringBuilder imageList = new StringBuilder();
for (int i = 0; i < files.length; i++) {
if (!files[i].isEmpty()) {
try {
String filename = new Date().getTime()
+ files[i].getOriginalFilename();
FileOutputStream os = new FileOutputStream(url + filename);
FileInputStream in = (FileInputStream) files[i]
.getInputStream();
byte[] buff = new byte[1024];
int len;
while((len=in.read(buff))!=-1){
os.write(buff,0,len);
}
os.flush();
os.close();
in.close();
imageList.append(filename + ",");
} catch (Exception e) {
System.out.println("上传出错");
}
}
}
return "success";
}
同名文件覆盖问题:
解决方案:获取系统当前时间作为文件前缀
代码:
String filename = new Date().getTime()+ files[i].getOriginalFilename();

浙公网安备 33010602011771号