基于springboot实现文件上传
更新时间:2020年11月9日 09:24 点击:2197
本文实例为大家分享了基于springboot的文件上传的具体代码,供大家参考,具体内容如下
第一步:在vo包下创建上传前端响应类
import com.alibaba.druid.filter.AutoLoad; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; /** * 上传响应参数 * @param <E> */ //以下是lombok插件注解 @Data @AllArgsConstructor @NoArgsConstructor public class Resp<E> { //返回状态码 如 200 403 private String code; //返回信息 private String Msg; //也可定义为 Object body 都表示任意类型的意思 private E body;//模板类型 /** * 成功时候方法 * @param body * @param <E> * @return */ public static<E> Resp<E> success(E body){ return new Resp<E>("200","上传成功!",body); } /** * 上传失败时的方法 * @param code * @param msg * @param <E> * @return */ public static<E> Resp<E> fail(String code,String msg){ return new Resp<E>(code,msg,null); } }
第二步:在controller层接收前端上传的文件
import com.qf.springboot_ssm_day02.service.UploadService; import com.qf.springboot_ssm_day02.vo.Resp; 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.RequestMethod; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.multipart.MultipartFile; @Controller public class uploadController { @Autowired private UploadService uploadService; @RequestMapping(value = "upload",method = RequestMethod.POST) @ResponseBody //返回类型根据自定义的返回类型 不一定和我一样 public Resp<String> upload(@RequestParam("file")MultipartFile file){ return uploadService.upload(file); } }
第三步:在servcie包下建立upload接口及其实现类处理业务
import com.qf.springboot_ssm_day02.vo.Resp; import org.springframework.web.multipart.MultipartFile; /** *上传业务类 */ public interface UploadService { //上传接口 Resp<String > upload(MultipartFile file); }
import com.qf.springboot_ssm_day02.service.UploadService; import com.qf.springboot_ssm_day02.vo.Resp; import org.springframework.stereotype.Service; import org.springframework.web.multipart.MultipartFile; import java.io.File; /** * 上传业务实现类 */ @Service public class UploadServiceImpl implements UploadService { @Override public Resp<String> upload(MultipartFile file) { //判断上传的文件是不是空 if (file.isEmpty()){ return Resp.fail("400","文件为空!"); } //文件不为空的情况 //获得原始文件名(前端传过来的文件名) 带有拓展名 //原始文件名存在一定问题 String OriginalFilename=file.getOriginalFilename(); //根据 时间戳+拓展名=服务器文件名 // 确定服务器文件名(经过字符操作加上拓展名) String fileName= System.currentTimeMillis()+"."+OriginalFilename.substring(OriginalFilename.lastIndexOf(".")+1); //控制台查看服务器文件名 System.out.println(fileName); //确定文件储存位置 // 文件保存路径 注意最后加上双反斜杠 转义字符所有双反斜杠 String filePath="F:\\Test\\"; //目标文件路径 (实际创建在硬盘的文件) File dest=new File(filePath+fileName); //判断dest的父目录是否存在 if(dest.getParentFile().exists()) dest.getParentFile().mkdirs(); try { //前端传过来的文件拷贝在本地 file.transferTo(dest); }catch (Exception e){ e.printStackTrace(); return Resp.fail("500",OriginalFilename+"上传失败!"); } //上传成功 返回前端穿过来的文件名 return Resp.success(fileName); } }
第四步:postman测试上传
可以看到文件以及成功上传到本地啦!
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持猪先飞。
相关文章
解决springboot使用logback日志出现LOG_PATH_IS_UNDEFINED文件夹的问题
这篇文章主要介绍了解决springboot使用logback日志出现LOG_PATH_IS_UNDEFINED文件夹的问题,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-04-28- 这篇文章主要为大家详细介绍了SpringBoot实现excel文件生成和下载,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-02-09
- 本文章来人大家介绍一个php文件上传类的使用方法,期望此实例对各位php入门者会有不小帮助哦。 简介 Class.upload.php是用于管理上传文件的php文件上传类, 它可以帮...2016-11-25
- 又码了一个周末的代码,这次在做一些关于文件上传的东西。(PHP UPLOAD)小有收获项目是一个BT种子列表,用户有权限上传自己的种子,然后配合BT TRACK服务器把种子的信息写出来...2016-11-25
- 本文实例讲述了jQuery实现文件上传进度条效果的代码。分享给大家供大家参考。具体如下: 运行效果截图如下:具体代码如下:<!DOCTYPE html><html><head><meta charset="utf-8"><title>upload</title><link rel="stylesheet...2015-11-24
- 这篇文章主要介绍了详解springBoot启动时找不到或无法加载主类解决办法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-09-16
- 本篇文章主要说明的是与php文件上传的相关配置的知识点。PHP文件上传功能配置主要涉及php.ini配置文件中的upload_tmp_dir、upload_max_filesize、post_max_size等选项,下面一一说明。打开php.ini配置文件找到File Upl...2015-10-21
- 这篇文章主要介绍了SpringBoot集成Redis实现消息队列的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-02-10
- 这篇文章主要介绍了解决Springboot get请求是参数过长的情况,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-09-17
Spring Boot项目@RestController使用重定向redirect方式
这篇文章主要介绍了Spring Boot项目@RestController使用重定向redirect方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教...2021-09-02- 这篇文章主要介绍了Springboot+TCP监听服务器搭建过程,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2020-10-28
- 这篇文章主要介绍了springBoot 项目排除数据库启动方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教...2021-09-10
详解SpringBoot之访问静态资源(webapp...)
这篇文章主要介绍了详解SpringBoot之访问静态资源(webapp...),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-09-14- 这篇文章主要介绍了SpringBoot接口接收json参数解析,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教...2021-10-19
借助FileReader实现将文件编码为Base64后通过AJAX上传
这篇文章主要介绍了借助FileReader实现将文件编码为Base64后通过AJAX上传的方法,包括后端对文件数据解码并保存的PHP代码,需要的朋友可以参考下...2015-12-25springboot中使用@Transactional注解事物不生效的坑
这篇文章主要介绍了springboot中使用@Transactional注解事物不生效的原因,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-01-26- 这篇文章主要介绍了jQuery+ajax简单实现文件上传的方法,结合实例形式简单分析了jQuery基于ajax的post方法进行文件传输及asp.net后台处理技巧,需要的朋友可以参考下...2016-06-12
- 这篇文章主要介绍了springboot多模块包扫描问题的解决方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-09-16
- 本文实例讲述了PHP多文件上传类,分享给大家供大家参考。具体如下:<?phpclass Test_Upload{ protected $_uploaded = array(); protected $_destination; protected $_max = 1024000; protected $_messages =...2015-10-30
- 这篇文章主要为大家详细介绍了js实现上传文件添加和删除文件选择框 ,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2016-10-25