使用MultipartFile进行接收上传图片非常的简单。
文中实例是博智互联在SpringBoot项目上,使用Spring MVC的MultipartFile类在JAVA后端 接收前端上传文件的请求。
这里只给大家处理controller层,server保存逻辑具体使用什么技术保存持久化大家可以任意发挥。
MultipartFile 单文件图片上传。
接收文件,先保存文件,再把文件保存到对象,再保存对象,最后返回执行结果
@RequestMapping("/addArticleImg")public Map addArticleImg(MultipartFile mfile){Map map = new HashMap<>();if(mfile == null) {map.put("msg", "没有上传缩略图!");return map;}//获取后缀String suffixName = ImageUtil.getImagePath(mfile);//获取新的文件名String newFileName = ImageUtil.getNewFileName(suffixName);//保存图片File file = new File(ImageUtil.getNewImagePath(newFileName));boolean state = ImageUtil.saveImage(mfile, file);if(state) {//图片保存成功//设置图片到对象 article是实体类对象article.setArticle_img(ImageUtil.getNewImagePath(newFileName));//保存对象到数据库int row = articleService.addArticle(article);if(row>0) {map.put("success", true);map.put("msg", "图片上传成功");}else {map.put("success", false);map.put("msg", "图片上传失败");}}else {map.put("success", false);map.put("msg", "图片上传失败");}return map;}
MultipartFile 多文件多图片上传
上传多张图片,后端接收保存文件,最后返回的是文件保存地址集合。
@RequestMapping("/addimage")public Map addimage(MultipartFile[] files){Map map = new HashMap<>();List list = new ArrayList<>();for(int i = 0;i
ImageUtil工具类
图片处理的工具类
SAVE_IMAGE_PATH 如果是windows 可以直接盘符地址,如果是linux 可以/root/从根目录设置路径,当然也可以保存调用项目地址做对应保存。
private final static String SAVE_IMAGE_PATH = "D:/image/";/** * 返回文件后缀 * @param file * @return */public static String getImagePath(MultipartFile file) {String fileName = file.getOriginalFilename();//获取原文件名int index = fileName.indexOf(".");return fileName.substring(index, fileName.length());}/** * 保存图片 * @param mfile * @param file * @return */public static boolean saveImage(MultipartFile mfile ,File file) {//查看文件夹是否存在,不存在则创建if(!file.getParentFile().exists()) {file.getParentFile().mkdirs();}try {//使用此方法保存必须要绝对路径且文件夹必须已存在,否则报错mfile.transferTo(file);return true;} catch (IllegalStateException | IOException e) {e.printStackTrace();}return false;}/** * 新文件名 * @param hz * @return */public static String getNewFileName(String suffix) {SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");String date = sdf.format(new Date());return date + UUID.randomUUID() + suffix;}/** * 返回图片保存地址 * @param name * @return */public static String getNewImagePath(String name) {return SAVE_IMAGE_PATH+name;}
是不是很简单呢?其他好多知识,都是需要实操一遍两遍后就非常简单容易,最主要是要理解java的特性和程序的编程开发思想。好了,希望博智互联的分享,对大家可以有一些帮助。