SpringBoot入门之上传文件

 2023-09-05 阅读 274 评论 0

摘要:2019独角兽企业重金招聘Python工程师标准>>> 这一篇简单实现一个上传文件的功能,上传文件还是经常用到的,比如上传用户头像。其实上传和下载的原理都一样,都是对输入输出流进行操作。 1.使用java里面的读写文件来实现 这里主要使用了3个注解&#

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

这一篇简单实现一个上传文件的功能,上传文件还是经常用到的,比如上传用户头像。其实上传和下载的原理都一样,都是对输入输出流进行操作。
1.使用java里面的读写文件来实现
这里主要使用了3个注解:@RestController,@PostMapping,@RequestParam 。
@RestController表示这个类是个控制器,可以接收和响应网络请求;@PostMapping配置了这个方法的访问路径,同时指定了请求方法为post;@RequestParam是请求附带的参数

package com.spring.upload.controller;import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;/**
* Created by zhangyi on 2017/4/10.
* 上传文件控制器
*/
@RestController
public class UploadController {/*** 文件存储路径*/private String path="F:\\UploadFile";@PostMapping("/uploadFile")public String  uploadFile(@RequestParam("file")MultipartFile file) throws IOException {String result;File parentFile=new File(path);if (!parentFile.exists()) {//如果文件存储路径,则创建parentFile.mkdirs();}//MultipartFile会对上传的文件做一些封装,所以要获得源文件名要用file.getOriginalFilename()File myFile=new File(parentFile,file.getOriginalFilename());//下面就是java的一些基本东西了,创建文件,获取输入输出流,读写文件FileOutputStream out=null;InputStream in=null;try {myFile.createNewFile();out=new FileOutputStream(myFile);in=file.getInputStream();byte[] b=new byte[10*1024];int n;while ((n=in.read(b))!=-1){out.write(b,0,n);out.flush();}result="success";} catch (IOException e) {e.printStackTrace();result="fail";}finally {//最后关闭输入输出流,避免造成内存泄漏if (out != null) {out.close();}if (in != null) {in.close();}}return result;}
}

因为MultipartFile类的transferTo方法的封装,所以上面那一段对输入输出流的操作,可以换成下面的这段

package com.spring.upload.controller;import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;import java.io.File;
import java.io.IOException;/*** Created by zhangyi on 2017/4/10.* 上传文件控制器*/
@RestController
public class UploadController {/*** 文件存储路径*/private String path="F:\\UploadFile";@PostMapping("/uploadFile")public String  uploadFile(@RequestParam("file")MultipartFile file) {String result;File parentFile=new File(path);if (!parentFile.exists()) {//如果文件存储路径,则创建parentFile.mkdirs();}//MultipartFile会对上传的文件做一些封装,所以要获得源文件名要用file.getOriginalFilename()File myFile=new File(parentFile,file.getOriginalFilename());try {file.transferTo(myFile);result="success";} catch (IOException e) {e.printStackTrace();result="fail";}return result;}
}

转载于:https://my.oschina.net/u/2606060/blog/876880

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/1/745.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息