springboot文件上传

2 篇文章 0 订阅
2 篇文章 0 订阅

文件上传

文件上传必须要用post请求,get请求有大小限制
注意:必须开启多媒体标签<form action="http://localhost:8091/file" method="post" enctype="multipart/form-data">"
前端页面,前端name="file",后台需要用

<body>
	<h1>实现文件上传</h1>
	<!--enctype="开启多媒体标签"  -->
	<form action="http://localhost:8091/file" method="post" 
	enctype="multipart/form-data">
		<input name="fileImage" type="file" />
		<input type="submit" value="提交"/>
	</form>
</body>

后台接受

	/**
	 * 文件上传入门案例
	 * url地址:http://localhost:8091/file   post
	 * 参数:fileImage=.......
	 * @return 字符串
	 * 
	 * 参数说明:MultipartFile 接口:主要负责实现文件流的接受
	 * 		常识:
	 * 			1.必须指定文件上传的路径信息D:\test\Img\XXX.jpg
	 * @throws IOException 
	 */
	@RequestMapping("/file")
	@ResponseBody
	public String LoadImg(MultipartFile fileImage) throws IOException { //还可以用输入流读取文件流InputStream fileImage接受,此处使用springMVC封装的MultipartFile类

		//获取文件名称XXX.jpg
		String filename = fileImage.getOriginalFilename();
		
		
		//1.校验图片格式
		//1.1图片类型封装
		  Set<String> imgTypeList=new HashSet<String>();		
			imgTypeList.add(".jpg");
			imgTypeList.add(".png");
			imgTypeList.add(".gif");

		// 1.2文件后缀名,jpg|JPG	(后缀名全部转小写)判断是否图片
		String substring = filename.substring(filename.lastIndexOf(".")).toLowerCase();
		if(!imgTypeList.contains(substring))
			throw new IllegalAccessError("图片格式不正确");
		
		//2.对图片按日期(年/月/日)分类保存或者 hash 分类	创建目录
		String localName="d:/testIo/";	//2.1本地缓存目录
		String datepath=new SimpleDateFormat("yyyy/MM/dd").format(new Date());//2.2按时间分目录保存
		File f=new File(localName+datepath+"/");
		if(!f.exists()) {
			f.mkdirs();	//2.3如果文件目录不存在,创建多级目录
		} 
		
		
		//3.防止用户上传相同名称的图片进行覆盖,重命名文件名(UUID)	指定文件的全部路径真实路径
	
		File file=new File(localName+datepath+UUID.randomUUID().toString()+substring);
		
		//利用transferTo()方法实现文件输出
		fileImage.transferTo(file);
	
		return "保存成功";
	}

spring boot 的属性配置,解决图片上传太大的问题:
spring:
http:
multipart:
max-file-size: 100Mb #文件上传大小
max-request-size: 200Mb # 最打请求大小

文件下载

通过访问:http://localhost:8091/load

//文件下载
	@RequestMapping("/load")
	@ResponseBody
	public String downImg(HttpServletResponse res) throws IOException {
		
		File file=new File("d:/testIo/2e902cf761494acda51f95732897f420.jpg");
		
		InputStream in=new FileInputStream(file);
		ServletOutputStream outputStream = res.getOutputStream();
		byte b[]=new byte[1024];
		int a=0;
		while((a=in.read(b))!=-1) {
			outputStream.write(b, 0, a);
	
		}
		
		return "下载成功";
	}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Spring Boot中实现文件上传非常简单。首先,你需要在项目的依赖中添加spring-boot-starter-web。然后,你可以通过配置文件来对文件上传进行一些基本的配置。例如,你可以设置是否开启文件上传支持、文件写入磁盘的阈值、上传文件的临时保存位置、上传的单个文件的最大大小以及多文件上传时文件的总大小等。\[1\] 对于单文件上传,你可以创建一个HTML表单,使用enctype="multipart/form-data"来指定表单的编码类型,并使用<input type="file">来选择文件。然后,你可以在后端编写一个处理文件上传的接口,通过@RequestParam注解来获取上传的文件。\[2\] 对于多文件上传,你可以创建一个HTML表单,使用相同的方式来选择多个文件。然后,你可以在后端编写一个处理多文件上传的接口,通过@RequestParam注解来获取上传的文件列表。\[2\] 在Spring Boot中,如果你没有提供MultipartResolver,那么默认采用的MultipartResolver就是StandardServletMultipartResolver。因此,你甚至可以实现零配置的文件上传。\[3\] 总结起来,Spring Boot提供了简单而强大的功能来实现文件上传,你只需要添加依赖、进行一些基本的配置,然后在后端编写相应的接口即可实现文件上传功能。 #### 引用[.reference_title] - *1* *2* *3* [SpringBoot文件上传](https://blog.csdn.net/qq_43581790/article/details/123811775)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值