SpringMVC文件上传(二)指定文件
来源:互联网 发布:淘宝网达芙妮女凉鞋 编辑:程序博客网 时间:2024/06/06 01:18
在上面的一节中,我们查看运行的结果,即然在一个zip格式的文件,这显然不是我们所想要的,所以这一节,我们主要处理就是,要用户必须上传图片,而且上传的文件不能太大,如里不满足的话,那么页面将会报错,报错信息要以友好地形式提示。
1.上传是图片文件
我们修改pictureUploadController的类,修改的目的是文件 必须是图片的。下面是笔者修改后的代码。
package masterSpringMvc.profile;import org.apache.tomcat.util.http.fileupload.IOUtils;import org.springframework.core.io.FileSystemResource;import org.springframework.core.io.Resource;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestMethod;import org.springframework.web.multipart.MultipartFile;import org.springframework.web.servlet.mvc.support.RedirectAttributes;import java.io.*;@Controllerpublic class PictureUploadController {public static final Resource PICTURES_DIR = newFileSystemResource("./pictures");@RequestMapping("upload")public String uploadPage() {return "profile/uploadPage";}@RequestMapping(value = "/upload", method = RequestMethod.POST)public String onUpload(MultipartFile file, RedirectAttributesredirectAttrs) throws IOException {if (file.isEmpty() || !isImage(file)) {redirectAttrs.addFlashAttribute("error", "Incorrect file.Please upload a picture.");return "redirect:/upload";}copyFileToPictures(file);return "profile/uploadPage";}private Resource copyFileToPictures(MultipartFile file) throwsIOException {String fileExtension = getFileExtension(file.getOriginalFilename());File tempFile = File.createTempFile("pic", fileExtension,PICTURES_DIR.getFile());try (InputStream in = file.getInputStream();OutputStream out = new FileOutputStream(tempFile)) {IOUtils.copy(in, out);}return new FileSystemResource(tempFile);}private boolean isImage(MultipartFile file) {return file.getContentType().startsWith("image");}
2.视图层修改
我们首先还是在两份国际化文件中添加下面的字段,对于法语的文件 ,读者自己翻译添加。
upload.io.exception=An error occurred while uploading the file. Please try again.upload.file.too.big=Your file is too big.
之后,我们在uploadPage中添加下面的代码,这个作用就是当文件上传不是图片时风们要友好地提示。
<div class="col s12 center red-text" th:text="${error}"th:if="${error}">Error during upload</div>
3.总结
这里笔者已经对上传文件做了处理,要求就是上传的文件必须是图片,如日不是图片,那么将会提示下图的信息。可是还有问题,笔者有之前说过了要对文件的大小作判断,如果大小超出了范围,我们也要友好提示,可是这一章节里,我们并没有实现。不要着急,我们下一节将会讲解。
源码下载:git@github.com:owenwilliam/masterSpringMVC.git
0 0
- SpringMVC文件上传(二)指定文件
- Spring SpringMVC文件上传错误(二)
- SpringMVC中的文件上传 二
- SpringMVC 理论与实用技术(二)文件上传
- SpringMVC基础及实例(二)文件上传简单实例
- 学习SpringMVC(二十二)之文件上传
- springMVC上传文件(11)
- springmvc上传文件(图片)
- SpringMVC文件上传(转载)
- 文件上传(二)
- SpringMVC实现文件上传到Tomcat指定目录(包含pojo提交)
- springMVC(11) springMVC文件上传
- SpringMVC-----8、SpringMVC上传文件
- springmvc文件上传总结
- SpringMVC multipart文件上传
- SpringMVC中的文件上传
- springmvc的文件上传
- springMVC上传文件
- 公众服务号开启回调模式与企业号开始回调的区别
- 小结SpringMVC(一)
- TKRL论文:具有层次类型的知识图谱表示学习
- SpringMVC文件上传(一)
- [DevExpress]在Dev GridControl中添加颜色可变的ProgressBar z
- SpringMVC文件上传(二)指定文件
- SpringMVC文件上传(三)异常栈处理
- Java 网络编程
- LeetCode--No.24--Swap Nodes In Pairs
- SpringMVC路径配置
- SpringMVC显示上传文件
- Raspberry资源收集
- SprinMVC解决URL多个参数
- ubuntu16.04LTS关闭无响应的进程