springboot多文件上传

springboot多文件上传,第1张

MultipartFile提供了以下方法来获取上传文件的信息:

getOriginalFilename,获取上传的文件名字;

getBytes,获取上传文件内容,转为字节数组;

getInputStream,获取一个InputStream;

isEmpty,文件上传内容为空,或者根本就没有文件上传;

getSize,文件上传的大小。

transferTo(File dest),保存文件到目标文件系统;

同时上传多个文件,则使用MultipartFile数组类来接受多个文件上传:

//多文件上传@RequestMapping(value = "/batch/upload", method = RequestMethod.POST)

    @ResponseBody    public String handleFileUpload(HttpServletRequest request){

        List<MultipartFile>files = ((MultipartHttpServletRequest) request)

                .getFiles("file")

        MultipartFile file = null

        BufferedOutputStream stream = null

        for (int i = 0i <files.size()++i) {

            file = files.get(i)

            if (!file.isEmpty()) {

                try {

                    byte[] bytes = file.getBytes()

                    stream = new BufferedOutputStream(new FileOutputStream(

                            new File(file.getOriginalFilename())))

                    stream.write(bytes)

                    stream.close()

                } catch (Exception e) {

                    stream = null

                    return "You failed to upload " + i + " =>"                            + e.getMessage()

                }

            } else {

                return "You failed to upload " + i

                        + " because the file was empty."

            }

        }

        return "upload successful"

    }

可以通过配置application.properties对SpringBoot上传的文件进行限定默认为如下配置:

spring.servlet.multipart.enabled=true

spring.servlet.multipart.file-size-threshold=0

spring.servlet.multipart.location=

spring.servlet.multipart.max-file-size=1MB

spring.servlet.multipart.max-request-size=10MB

spring.servlet.multipart.resolve-lazily=false

enabled默认为true,既允许附件上传。

file-size-threshold限定了当上传文件超过一定长度时,就先写到临时文件里。有助于上传文件不占用过多的内存,单位是MB或KB,默认0,既不限定阈值。

location指的是临时文件的存放目录,如果不设定,则web服务器提供一个临时目录。

max-file-size属性指定了单个文件的最大长度,默认1MB,max-request-size属性说明单次HTTP请求上传的最大长度,默认10MB.

resolve-lazily表示当文件和参数被访问的时候再被解析成文件。

1、首先在运行中输入gpedit.msc,点击回车后即可打开“组策略对象编辑器”。

2、其次进入组策略对象编辑器界面之后,点击“计算机配置”,然后点击“管理模板”接着继续点击“网络”,再点击“QoS数据包计划程序”。

3、然后进入QoS数据包计划程序见界面之后,点击“限制可保留带宽”,并将其设置为“已启”。

4、最后在展开的界面中选择“带宽限制(%)”栏,并将带宽值“20”设置为“0”,这样就可以解决上传速度慢的情况了。

在做项目的时候,遇到这样的问题

org.springframework.web.multipart.MultipartException

是上传文件大小大于默认大小了,springboot默认单次上传的文件不超过1M,如果要上传更大的文件需要在 application.yml 文件中更改设置。

max-file-size 是单个文件大小

max-request-size 是设置总上传的数据大小

根据自己需求定义吧,Mb和Kb都可以,大小写也都随意


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/8144059.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-13
下一篇 2023-04-13

发表评论

登录后才能评论

评论列表(0条)

保存