图片上传
来源:互联网 发布:淘宝企业店铺贷款额度 编辑:程序博客网 时间:2024/05/21 10:11
步骤一:导入文件上传工具类(上传路径需要修改)
package com.nine.util;import org.springframework.web.multipart.MultipartFile;import javax.servlet.http.HttpServletRequest;import java.io.File;import java.io.FileOutputStream;import java.io.InputStream;import java.io.OutputStream;import java.util.UUID;public class FileUtil {//图片上传工具类 public static String uploadFile(MultipartFile file, HttpServletRequest request) throws Exception{ String pathRoot = request.getSession().getServletContext().getRealPath(""); System.out.println(pathRoot); //生成uuid作为文件名称 String uuid= UUID.randomUUID().toString().replaceAll("-",""); //获得文件类型(可以判断如果不是图片,禁止上传) String contextType=file.getContentType(); //获取文件后缀名称 String fileName=uuid+"."+contextType.substring(contextType.indexOf("/")+1); String path="/resources/img/"+fileName; copyInputStreamToFile(file.getInputStream(),new File("D:\\MyProject\\nine_news\\web\\"+path));//记得改成自己项目所在路径 file.transferTo(new File(pathRoot+path)); System.out.println(pathRoot+path); //返回文件保存到数据库的路径 return path; } public static void copyInputStreamToFile(InputStream inputStream, File file) throws Exception{ if (!file.exists()) { file.createNewFile(); } OutputStream outputStream=new FileOutputStream(file); byte[] arr=new byte[1024]; int len=0; while ((len=inputStream.read(arr))!=-1){ outputStream.write(arr,0,len); } outputStream.close(); inputStream.close(); }}
步骤二:Controller类 demo 注意参数MultipartFile 和注解
@RequestParam
//图书添加@RequestMapping(value = "/addBook",method = RequestMethod.POST)public String addBook(@RequestParam(value = "file",required = false) MultipartFile file, Book book) throws Exception{ //判断文件上传是否为空 if (!file.isEmpty()){ //把上传的路径转为字符串存入路径 String picture= FileUtils.uploadFile(file); //把路径存入 book.setPicture(picture); }else { book.setPicture(""); } iBookService.addBook(book); //重定向到查询的方法 return "redirect:/book/fuzzyBook";}
步骤三:添加页面的demo
enctype="multipart/form-data"<h2>图书添加</h2><form action="/book/addBook" enctype="multipart/form-data" method="post"> 图书封面:<input type="file" name="file"/><br/> 图书名:<input type="text" name="name"/><br/> 图书评价:<input type="text" name="content"/><br/> <input type="submit" value="添加"/></form>
步骤四:页面展示 图片 用thymeleaf模板的th标签
<td><img th:src="${book.picture}"/> </td>
步骤五:
POM配置文件
;<!-- 文件上传 --><dependency> <groupId>commons-fileupload</groupId> <artifactId>commons-fileupload</artifactId> <version>1.3.1</version></dependency><dependency> <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> <version>2.4</version></dependency>
阅读全文
0 0
- 图片上传
- 上传图片
- 上传图片
- 上传图片
- 上传图片
- 上传图片
- 图片上传
- 图片上传
- 上传图片
- 上传图片
- 图片上传
- 图片上传
- 图片上传
- 图片上传
- 上传图片
- 上传图片
- 上传图片
- 图片上传
- 55. Jump Game
- Linux 软件安装到 /usr,/usr/local/ 还是 /opt 目录? 标签: linux软件安装
- 根据时间 或 时间戳 按年月日分组统计
- 1050. 螺旋矩阵(25)
- java编程思想——对象
- 图片上传
- APUE之线程同步
- spring(aop面向切面编程)
- element UI下拉触发方式
- Assembly-CSharp-firstpass.dll could no be found
- CodeForces
- 1
- BZOJ2140 稳定婚姻 [Tarjan]
- Codeforces Round #435 (Div. 2) A. Mahmoud and Ehab and the MEX(思路)