SpringBoot上传文件、视频等

1、在application.yml文件中设置文件大小(Spring Boot默认文件上传大小为1M,多文档上传中总是出现文件大小超出限度)

spring:
    servlet:
        multipart:
          max-file-size: 1GB
          max-request-size: 1GB

2、在启动类中配置Bean来设置文件大小,并在类上加入@Configuration

/**
     * 文件上传配置
     *
     * @return
     */
    @Bean
    public MultipartConfigElement multipartConfigElement() {
        MultipartConfigFactory factory = new MultipartConfigFactory();
        //  单个数据大小
        factory.setMaxFileSize("10240KB"); // KB,MB
        /// 总上传数据大小
        factory.setMaxRequestSize("102400KB");
        return factory.createMultipartConfig();
    }
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
<%
    String path = request.getContextPath();
%>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title>上传文件到服务器</title>
</head>
<body>
<form action="<%=path %>/upload/upload" method="post" enctype="multipart/form-data">
    <input type="file" name="uploadFile" value="请选择文件">
    <input type="submit" value="上传">
</form>
</body>
</html>
@PostMapping("/upload")
public String upload(MultipartFile uploadFile, HttpServletRequest request) {
/*定义文件的存储路径,如下,是在linux和mac上定义的文件路径
/private/var/folders/8x/4zvnbqmj1w33cqmzrpygzbth0000gn/T/tomcat-docbase.5206733816001100271.8080/uploadFile
*/

	String realPath = request.getSession().getServletContext().getRealPath("/uploadFile/");
	File dir = new File(realPath);
	if (!dir.isDirectory()) {//文件目录不存在,就创建一个
		dir.mkdirs();
	}

	try {
	    String filename = uploadFile.getOriginalFilename();
	    //服务端保存的文件对象
		File fileServer = new File(dir, filename);
		System.out.println("file文件真实路径:" + fileServer.getAbsolutePath());
		//2,实现上传
		uploadFile.transferTo(fileServer);
		String filePath = request.getScheme() + "://" +
				request.getServerName() + ":"
				+ request.getServerPort()
				+ "/uploadFile/" + filename;
		//3,返回可供访问的网络路径
		return filePath;
	} catch (IOException e) {
		e.printStackTrace();
	}
	return "上传失败";
}

 

  • 3
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值