SSH项目到片尾,平时咱们往博客插个美图,发个说说什么的,感觉一点再一点图片就上传了,那今天小编就和大家看看上传图片背后的故事.
页面设置:
<form method="post" enctype="multipart/form-data">
<input type="file" name="upload" />
enctype属性:
enctype 属性规定在发送到服务器之前应该如何对表单数据进行编码。
默认地,表单数据会编码为 "application/x-www-form-urlencoded"。就是说,在发送到服务器之前,所有字符
都会进行编码(空格转换为 "+" 加号,特殊符号转换为 ASCII HEX 值)。
Multipart/form-data?
Multipart/form-data是上传文件的一种方式.
Multipart/form-data其实就是浏览器用表单上传文件的方式.最常见的情境是:在写邮件时,向邮件后添加附
件,附件通常使用表单添加,也就是用multipart/form-data格式上传到服务器.在上传图片的时候也是用这种格式上
传的.
重要代码:
// 保存商品的方法:
public String save() throws IOException {
// 将提交的数据添加到数据库中.
product.setPdate(new Date());
// product.setImage(image);
if(upload != null){
// 将商品图片上传到服务器上.
// 获得上传图片的服务器端路径.
String path = ServletActionContext.getServletContext().getRealPath(
"/products");
// 创建文件类型对象:
File diskFile = new File(path + "//" + uploadFileName);
// 文件上传:
FileUtils.copyFile(upload, diskFile);
product.setImage("products/" + uploadFileName);
}
productService.save(product);
return "saveSuccess";
}
结果图示:
至此,图片上传成功.