SpringBoot+BootStrap多文件上传到本地的方法
发表于:2025-11-11 作者:千家信息网编辑
千家信息网最后更新 2025年11月11日,这篇文章主要介绍"SpringBoot+BootStrap多文件上传到本地的方法"的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇"SpringBoot+BootS
千家信息网最后更新 2025年11月11日SpringBoot+BootStrap多文件上传到本地的方法
这篇文章主要介绍"SpringBoot+BootStrap多文件上传到本地的方法"的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇"SpringBoot+BootStrap多文件上传到本地的方法"文章能帮助大家解决问题。
1、application.yml文件配置
# 文件大小 MB必须大写# maxFileSize 是单个文件大小# maxRequestSize是设置总上传的数据大小spring: servlet: multipart: enabled: true max-file-size: 20MB max-request-size: 20MB
2、application-resources.yml配置(自定义属性)
#文件上传路径file: filepath: O:/QMDownload/Hotfix2/
3、后台代码
(1)FileService.java
package com.sun123.springboot.service;import org.springframework.web.multipart.MultipartFile;import java.util.Map;public interface FileService { Map fileUpload(MultipartFile[] file);} (2)FileServiceImpl.java
package com.sun123.springboot.service.impl;import com.sun123.springboot.FileUtil;import com.sun123.springboot.service.FileService;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.beans.factory.annotation.Value;import org.springframework.stereotype.Service;import org.springframework.web.multipart.MultipartFile;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import java.io.File;import java.io.FileInputStream;import java.io.PrintWriter;import java.util.*;/** * @ClassName FileServiceImpl * @Description TODO * @Date 2019/3/22 22:19 * @Version 1.0 */@Servicepublic class FileServiceImpl implements FileService { private static Logger log= LoggerFactory.getLogger(FileServiceImpl.class); //文件上传路径 @Service包含@Component @Value("${file.filepath}") private String filepath; Map resultMap = new LinkedHashMap(); //会将上传信息存入此处,根据需求自行调整 List fileName =new ArrayList(); //必须注入,不可以创建对象,否则配置文件引用的路径属性为null @Autowired FileUtil fileUtil; @Override public Map fileUpload(MultipartFile[] file) { HttpServletRequest request = null; HttpServletResponse response; resultMap.put("status", 400); if(file!=null&&file.length>0){ //组合image名称,";隔开"// List fileName =new ArrayList(); PrintWriter out = null; //图片上传 try { for (int i = 0; i < file.length; i++) { if (!file[i].isEmpty()) { //上传文件,随机名称,","分号隔开 fileName.add(fileUtil.uploadImage(request, filepath+"upload/"+ fileUtil.formateString(new Date())+"/", file[i], true)+fileUtil.getOrigName()); } } //上传成功 if(fileName!=null&&fileName.size()>0){ System.out.println("上传成功!"); resultMap.put("images",fileName); resultMap.put("status", 200); resultMap.put("message", "上传成功!"); }else { resultMap.put("status", 500); resultMap.put("message", "上传失败!文件格式错误!"); } } catch (Exception e) { e.printStackTrace(); resultMap.put("status", 500); resultMap.put("message", "上传异常!"); } System.out.println("==========filename=========="+fileName); }else { resultMap.put("status", 500); resultMap.put("message", "没有检测到有效文件!"); } return resultMap; } } (3)FileUtil.java
package com.sun123.springboot;import org.springframework.beans.factory.annotation.Value;import org.springframework.stereotype.Component;import org.springframework.web.multipart.MultipartFile;import javax.servlet.http.HttpServletRequest;import java.io.File;import java.text.SimpleDateFormat;import java.util.Date;/** * Created by wangluming on 2018/5/24. */@Componentpublic class FileUtil {// //文件上传路径// @Value("${file.filepath}")// private String filepath; //文件随机名称 private String origName; public String getOrigName() { return origName; } public void setOrigName(String origName) { this.origName = origName; } /** * * @param request * @param path_deposit 新增目录名 支持多级不存在目录 * @param file 待文件 * @param isRandomName 是否要基于图片名称重新编排名称 * @return */ public String uploadImage(HttpServletRequest request, String path_deposit, MultipartFile file, boolean isRandomName) { //上传 try { String[] typeImg={"gif","png","jpg","docx","doc","pdf"}; if(file!=null){ origName=file.getOriginalFilename();// 文件原名称 System.out.println("上传的文件原名称:"+origName); // 判断文件类型 String type=origName.indexOf(".")!=-1?origName.substring(origName.lastIndexOf(".")+1, origName.length()):null; if (type!=null) { boolean booIsType=false; for (int i = 0; i < typeImg.length; i++) { if (typeImg[i].equals(type.toLowerCase())) { booIsType=true; } } //类型正确 if (booIsType) { //存放图片文件的路径 //String path="O:\\QMDownload\\Hotfix\\"; //String path=filepath; //System.out.print("文件上传的路径"+path); //组合名称 //String fileSrc = path+path_deposit; String fileSrc = path_deposit; //是否随机名称 if(isRandomName){ //随机名规则:文件名+_CY+当前日期+8位随机数+文件后缀名 origName=origName.substring(0,origName.lastIndexOf("."))+"_CY"+formateString(new Date())+ MathUtil.getRandom620(8)+origName.substring(origName.lastIndexOf(".")); } System.out.println("随机文件名:"+origName); //判断是否存在目录 File targetFile=new File(fileSrc,origName); if(!targetFile.exists()){ targetFile.getParentFile().mkdirs();//创建目录 } //上传 file.transferTo(targetFile); //完整路径 System.out.println("完整路径:"+targetFile.getAbsolutePath()); return fileSrc; } } } return null; }catch (Exception e) { e.printStackTrace(); return null; } } /** * 格式化日期并去掉"-" * @param date * @return */ public String formateString(Date date){ SimpleDateFormat dateFormater = new SimpleDateFormat("yyyy-MM-dd"); String list[] = dateFormater.format(date).split("-"); String result = ""; for (int i=0;i(4)MathUtil.java
package com.sun123.springboot;import java.security.MessageDigest;import java.util.Random;public class MathUtil { /** * 获取随机的数值。 * @param length 长度 * @return */ public static String getRandom620(Integer length){ String result = ""; Random rand = new Random(); int n = 20; if(null != length && length > 0){ n = length; } boolean[] bool = new boolean[n]; int randInt = 0; for(int i = 0; i < length ; i++) { do { randInt = rand.nextInt(n); }while(bool[randInt]); bool[randInt] = true; result += randInt; } return result; } /** * MD5 加密 * @param str * @return * @throws Exception */ public static String getMD5(String str) { MessageDigest messageDigest = null; try { messageDigest = MessageDigest.getInstance("MD5"); messageDigest.reset(); messageDigest.update(str.getBytes("UTF-8")); } catch (Exception e) { //LoggerUtils.fmtError(MathUtil.class,e, "MD5转换异常!message:%s", e.getMessage()); } byte[] byteArray = messageDigest.digest(); StringBuffer md5StrBuff = new StringBuffer(); for (int i = 0; i < byteArray.length; i++) { if (Integer.toHexString(0xFF & byteArray[i]).length() == 1) md5StrBuff.append("0").append(Integer.toHexString(0xFF & byteArray[i])); else md5StrBuff.append(Integer.toHexString(0xFF & byteArray[i])); } return md5StrBuff.toString(); }}(5)FileController.java
package com.sun123.springboot.controller;import com.sun123.springboot.service.FileService;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestParam;import org.springframework.web.bind.annotation.ResponseBody;import org.springframework.web.multipart.MultipartFile;import java.util.Map;/** * @ClassName FileController * @Description TODO * @Date 2019/3/22 22:21 * @Version 1.0 */@Controller@RequestMapping(value = "/upload")public class FileController { @Autowired private FileService fileService; @RequestMapping(value = "/UpLoadImage") @ResponseBody public Map fileUpload(@RequestParam("file") MultipartFile[] file) throws Exception { Map fileUpload = fileService.fileUpload(file); return fileUpload; }} 4、前台代码(bootstrap)
关于"SpringBoot+BootStrap多文件上传到本地的方法"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注行业资讯频道,小编每天都会为大家更新不同的知识点。
文件
路径
图片
名称
按钮
方法
最大
大小
目录
知识
类型
配置
最小
成功
代码
原名
后缀
地址
宽度
属性
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
广电网络服务器如何设置
常州专业服务器散热器厂家
计算机三级网络技术激活码
网络技术应用说课
我的世界怎么连接到本地服务器
一台存储接多台服务器
初中生网络安全心得体会
学生网络安全教育提问
魔兽世界转入服务器阵营不同
工厂级数据库
网络安全宣传漫画图片简单
百度网络安全大赛视频
网络安全信息理解
7摩尔网络技术有限公司
普陀区口碑好的软件开发代理价格
csgo好友房间连接服务器失败
每日签到数据库设计
上海泰森网络技术公司
国家网络安全宣讲提纲
ai机器学习增强网络安全
云服务器对企业有什么影响
app如何调用签名验签服务器
无线网络安全配置结果分析
mysql备份多个数据库
易语言怎么连接mssql数据库
苹果登id显示服务器验证失败
君达智尚网络技术
济源软件开发要多少钱
绵阳互联网科技
在线点菜系统数据库