我的编程空间,编程开发者的网络收藏夹
学习永远不晚

SpringBoot+BootStrap多文件上传到本地的方法

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

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<String,Object> 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.*;@Servicepublic class FileServiceImpl implements FileService {    private static Logger log= LoggerFactory.getLogger(FileServiceImpl.class);    //文件上传路径    @Service包含@Component    @Value("${file.filepath}")    private String filepath;    Map<String, Object> resultMap = new LinkedHashMap<String, Object>();  //会将上传信息存入此处,根据需求自行调整    List<String> fileName =new ArrayList<String>();    //必须注入,不可以创建对象,否则配置文件引用的路径属性为null    @Autowired    FileUtil fileUtil;    @Override    public Map<String, Object> fileUpload(MultipartFile[] file) {        HttpServletRequest request = null;        HttpServletResponse response;        resultMap.put("status", 400);        if(file!=null&&file.length>0){            //组合image名称,“;隔开”//            List<String> fileName =new ArrayList<String>();            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;@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;    }        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 fileclass="lazy" data-src = path+path_deposit;                        String fileclass="lazy" data-src = 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(fileclass="lazy" data-src,origName);                        if(!targetFile.exists()){                            targetFile.getParentFile().mkdirs();//创建目录                        }                        //上传                        file.transferTo(targetFile);                        //完整路径                        System.out.println("完整路径:"+targetFile.getAbsolutePath());                        return fileclass="lazy" data-src;                    }                }            }            return null;        }catch (Exception e) {            e.printStackTrace();            return null;        }    }        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<list.length;i++) {            result += list[i];        }        return result;    }}

    (4)MathUtil.java

    package com.sun123.springboot;import java.security.MessageDigest;import java.util.Random;public class MathUtil {        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;    }        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;@Controller@RequestMapping(value = "/upload")public class FileController {    @Autowired    private FileService fileService;    @RequestMapping(value = "/UpLoadImage")    @ResponseBody    public Map<String,Object> fileUpload(@RequestParam("file") MultipartFile[] file) throws Exception {        Map<String, Object> fileUpload = fileService.fileUpload(file);        return fileUpload;    }}

    4、前台代码(bootstrap)

    <div class="container" th:fragment="fileupload">        <input id="uploadfile" type="file" class="file" multiple="multiple" name="file"/>    </div><script>    $("#uploadfile").fileinput({        language: 'zh', //设置语言        //uploadUrl: "http://127.0.0.1/testDemo/fileupload/upload.do", //上传的地址        uploadUrl: "/upload/UpLoadImage", //上传的地址        allowedFileExtensions: ['jpg', 'gif', 'png', 'docx', 'zip', 'txt'], //接收的文件后缀        //uploadExtraData:{"id": 1, "fileName":'123.mp3'},        showClose: false,//是否显示关闭按钮        uploadAsync: true, //默认异步上传        showUpload: true, //是否显示上传按钮        //showBrowse: true, //是否显示浏览按钮        showRemove: true, //显示移除按钮        showPreview: true, //是否显示预览        showCaption: false, //是否显示标题        browseClass: "btn btn-primary", //按钮样式        dropZoneEnabled: true, //是否显示拖拽区域        //previewFileType: ['docx'], //预览文件类型        //minImageWidth: 50, //图片的最小宽度        //minImageHeight: 50,//图片的最小高度        //maxImageWidth: 1000,//图片的最大宽度        //maxImageHeight: 1000,//图片的最大高度        maxFileSize:0,//单位为kb,如果为0表示不限制文件大小        //minFileCount: 0,        maxFileCount: 10, //表示允许同时上传的最大文件个数        enctype: 'multipart/form-data',        validateInitialCount: true,        previewFileIcon: "<iclass='glyphicon glyphicon-king'></i>",        msgFilesTooMany: "选择上传的文件数量({n}) 超过允许的最大数值{m}!",    }).on("fileuploaded", function (event, data, previewId, index) {    });</script>

    关于“SpringBoot+BootStrap多文件上传到本地的方法”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注编程网行业资讯频道,小编每天都会为大家更新不同的知识点。

    免责声明:

    ① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

    ② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

    SpringBoot+BootStrap多文件上传到本地的方法

    下载Word文档到电脑,方便收藏和打印~

    下载Word文档

    猜你喜欢

    SpringBoot+BootStrap多文件上传到本地的方法

    这篇文章主要介绍“SpringBoot+BootStrap多文件上传到本地的方法”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“SpringBoot+BootStrap多文件上传到本地的方法”文章能帮
    2023-06-29

    Mac本地文件上传到CentOS云服务器方法

    Mac本地文件上传到CentOS中,可以使用scp指令可以完成 ContOS端安装openssh-clients 通过yum安装执行yum install openssh
    2022-06-04

    如何将本地文件上传到gitlab上

    随着云计算技术的发展和普及,越来越多的软件开发项目都开始采用云端的代码管理平台来进行协作和管理。其中,GitLab因为其简单易用、功能强大等优点,成为了很多企业和开发团队的首选。但是,对于一些开发者来说,如何将本地文件上传到GitLab上还
    2023-10-22

    上传本地文件到HDFS服务器

    在这篇文章中,我将详细介绍如何将本地文件上传到HDFS(分布式文件系统)服务器。我们将使用Hadoop命令行工具来完成这个任务。 首先,确保你已经安装了Hadoop并且HDFS服务器正在运行。接下来,我们将按照以下步骤进行操作: 步骤 1:
    上传本地文件到HDFS服务器
    2023-12-23

    本地文件传输到vps的方法是什么

    将本地文件传输到VPS有多种方法,以下是常见的几种方法:1. 使用SCP命令:SCP是Secure Copy的缩写,它是基于SSH协议的文件传输工具。你可以使用以下命令将本地文件传输到VPS:```scp /path/to/local/fi
    2023-08-16

    Python保存MongoDB上的文件到本地的方法

    本文实例讲述了Python保存MongoDB上的文件到本地的方法。分享给大家供大家参考,具体如下: MongoDB上的文档通过GridFS来操作,Python也可以通过pymongo连接MongoDB数据库,使用pymongo模块的grid
    2022-06-04

    本地文件怎么上传到云服务器

    本地文件上传到云服务器的步骤准备工作:创建云服务器并获取登录信息安装SSH客户端文件上传:使用SCP命令:语法:scp[本地文件路径][用户名]@[云服务器IP地址]::[远程文件路径]使用WinSCP(Windows):可视化界面,拖放文件使用SFTP(Mac):sftp://[云服务器IP地址],拖放文件故障排除:检查IP和登录凭证验证防火墙设置检查磁盘空间最佳实践:使用安全连接(SSH)使用应用程序特定工具定期备份使用版本控制系统限制文件访问权限
    本地文件怎么上传到云服务器
    2024-04-10

    本地文件夹传到云主机的方法是什么

    将本地文件夹传输到云主机的方法可以通过以下步骤实现:1. 打开本地文件夹所在的计算机和云主机上的终端或命令行界面。2. 在本地计算机上使用文件传输工具(如WinSCP、FileZilla等)连接到云主机。输入云主机的IP地址、用户名和密码(
    2023-08-19

    怎么把本地文件上传到云主机

    要将本地文件上传到云主机,可以使用以下方法之一:1. 使用FTP客户端:安装一个FTP客户端程序(如FileZilla),打开该程序并连接到云主机的IP地址和FTP账号信息。然后,将本地文件从计算机的文件夹拖放到云主机的文件夹中。2. 使用
    2023-08-19

    本地文件怎么上传到云服务器

    要将本地文件上传到云服务器,你可以使用以下方法之一:1. 使用SSH命令行工具:在本地计算机上打开终端或命令提示符,然后使用SCP(Secure Copy)命令将文件从本地复制到云服务器。例如,使用以下命令将本地文件`localfile.t
    2023-09-27

    本地文件怎么传到云服务器上

    本地文件上传到云服务器的步骤:选择文件传输协议(FTP、SFTP、SCP)。建立与云服务器的连接,提供服务器地址、端口、用户名和密码。使用FTP或SFTP客户端或SCP命令行工具上传文件。验证上传的完整性,使用远程文件系统或SSH命令。采用安全协议、限制访问权限、定期备份和使用自动化工具优化传输过程。
    本地文件怎么传到云服务器上
    2024-04-12

    本地文件怎么传到云服务器上

    将本地文件传输到云服务器上有多种方法,下面列举两种常见的方法:1. 使用SCP(Secure Copy)命令:SCP是一种通过加密的方式在本地和远程服务器之间传输文件的方法。在本地终端输入以下命令:```scp /path/to/local
    2023-09-27

    关于Java从本地文件复制到网络文件上传

    这篇文章主要介绍了关于Java从本地文件复制到网络文件上传,File 和 IO 流其实是很相似的,都是将文件从一个地方转移到另一个地方,这也是流的特点之一,需要的朋友可以参考下
    2023-05-15

    Java怎么从本地文件复制到网络文件上传

    今天小编给大家分享一下Java怎么从本地文件复制到网络文件上传的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。文件复制文件复制
    2023-07-06

    怎么把本地文件上传到虚拟主机

    要将本地文件上传到虚拟主机,可以按照以下步骤进行操作:1. 选择一个FTP工具:FTP(文件传输协议)是一种常用的文件传输协议,可以使用各种FTP客户端工具来上传文件。一些常见的FTP工具包括FileZilla、WinSCP等。选择一个你喜
    2023-08-23

    编程热搜

    • Python 学习之路 - Python
      一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
      Python 学习之路 - Python
    • chatgpt的中文全称是什么
      chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
      chatgpt的中文全称是什么
    • C/C++中extern函数使用详解
    • C/C++可变参数的使用
      可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
      C/C++可变参数的使用
    • css样式文件该放在哪里
    • php中数组下标必须是连续的吗
    • Python 3 教程
      Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
      Python 3 教程
    • Python pip包管理
      一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
      Python pip包管理
    • ubuntu如何重新编译内核
    • 改善Java代码之慎用java动态编译

    目录