java 通过文件路径获得MulipartFile类型文件 - File转MulipartFile
java 通过文件路径获得MulipartFile类型文件 - File转MulipartFile
- 方式一:使用MockMultipartFile函数
- 方式二:数据流实现
思路:路径创建出File文件类型的对象,然后通过MultipartFile对象的MockMultipartFile方法将生成的File文件转化为MultipartFile文件,上代码;
方式一:使用MockMultipartFile函数
controller层:
package com.java.product.module.controller;import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.mock.web.MockMultipartFile;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;@Api(value = "uploadFile", tags = "上传文件")
@RequestMapping("/uploadFile")
@RestController
public class uploadFileController {@ApiOperation(value = "上传2", notes = "filePath:文件路径")@GetMapping("/getMulipartFile2")public MultipartFile getMulipartFiles2(String filePath) throws IOException {File file = new File(filePath);FileInputStream fileInputStream = new FileInputStream(file);MultipartFile multipartFile = new MockMultipartFile(file.getName(), file.getName(),"application/sql", fileInputStream);long size = multipartFile.getSize();return multipartFile;}
}
依赖的包:
<dependency><groupId>org.apache.httpcomponents</groupId><artifactId>httpcore</artifactId><version>4.0.1</version>
</dependency>
<dependency><groupId>org.springframework</groupId><artifactId>spring-test</artifactId><version>5.1.7.RELEASE</version>
</dependency>
下面直接使用swagger来进行测试,没有配置swagger的同学使用postMan也可以;
看来是没错了~对象不为空,且和上传文件的属性中的文件字节大小一样;
然后F9放开断点~发现…
报错了!?!?!
对,就是报错了,Type definition error - 类型定义错误,因为前端虽然能上传MultipartFile类型的文件,但是却无法解析,所以,不要把MultipartFile文件对象直接从后台给前端哦~
方式二:数据流实现
直接看代码吧
Controller层
package com.java.product.module.controller;import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileItemFactory;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.commons.CommonsMultipartFile;import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.OutputStream;@Api(value = "uploadFile", tags = "上传文件")
@RequestMapping("/uploadFile")
@RestController
public class uploadFileController {@ApiOperation(value = "上传1", notes = "filePath:文件路径")@GetMapping("/getMulipartFile1")public MultipartFile getMulipartFile1(String filePath) {File f = new File(filePath);String fieldName = f.getName();FileItemFactory factory = new DiskFileItemFactory(16, null);FileItem item = factory.createItem("file", "application/sql", false, fieldName);int bytesRead = 0;byte[] buffer = new byte[8192];try {FileInputStream fis = new FileInputStream(f);OutputStream os = item.getOutputStream();while ((bytesRead = fis.read(buffer, 0, 8192)) != -1) {os.write(buffer, 0, bytesRead);}os.close();fis.close();} catch (IOException e) {e.printStackTrace();}MultipartFile mfile = new CommonsMultipartFile(item);long size = mfile.getSize();return mfile;}
}
POM文件依赖:
<dependency><groupId>commons-fileupload</groupId><artifactId>commons-fileupload</artifactId><version>1.3.2</version>
</dependency>
然后运行看转化后的文件大小,如下图,依然成功了~
java 通过文件路径获得MulipartFile类型文件 - File转MulipartFile相关推荐
- Java之相对路径找不到文件问题解决方法
Java之相对路径找不到文件问题解决方法 参考文章: (1)Java之相对路径找不到文件问题解决方法 (2)https://www.cnblogs.com/gongxr/p/8862155.html ...
- fopen文件路径怎么写_PHP文件上传
文件系统处理的作用: 1. 所有的项目离不开文件处理 2. 可以用文件长时间保存数据 3. 建立缓存, 服务器中文件操作 文件处理 1. 文件类型 以Linux为模型的, 在Windows只能获取fi ...
- 批量修改指定文件夹里面相同类型文件的扩展名(转自Github,原作者Crag Richards)
batch_rename_file.py 批量修改指定文件夹里面相同类型文件的扩展名(转自Github,原作者Crag Richards) ''' 主要思路: 1.创建一个batch_rename函数 ...
- python进阶14文件路径(找不到文件)
原创链接:python进阶14文件路径(找不到文件) 开发时遇到问题,文件路径不正确,找不到文件等等,都是这一类问题. curdir,argv,file 举例: 文件1代码: 1 2 3 4 5 6 ...
- 帮你整理文件夹下各类型文件文件整理工具
帮你整理文件夹下各类型文件,可按后缀名,按月份进行归档整理. 比较适合用来整理手机里长期积累的照片和视频. 整理完的文件夹如下: 下载链接: https://download.csdn.net/dow ...
- java saveas绝对路径_java实现对文件的各种操作(转)
各种操作挺全的: java中提供了io类库,可以轻松的用java实现对文件的各种操作.下面就来说一下如何用java来实现这些操作. 新建目录 //String URL = request.getReq ...
- java如何获取文件路径_java如何获取文件路径
第一种:File f = new File(this.getClass().getResource("/").getPath()); System.out.println(f); ...
- mfc打开指定路径下指定类型文件_Windows 网络编程:文件操作
一次性进群,长期免费索取教程,没有付费教程. 教程列表见微信公众号底部菜单 进微信群回复公众号:微信群:QQ群:460500587 微信公众号:计算机与网络安全 ID:Computer-network ...
- python指定文件路径_python实现指定文件夹下的指定文件移动到指定位置
# coding:utf-8 import os import shutil import sys reload(sys) sys.setdefaultencoding('utf8') # print ...
最新文章
- 第7章 面向对象编程(OOP) 《Kotin 编程思想·实战》
- 易语言逐条读access数据_易语言操作数据教程之ACCESS实战视频教程
- OpenStack 的单元测试
- pycharm中传入命令行参数
- OS / 线程哪些内容是私有的和共享的?
- 部署windows服务
- 【ABP框架系列学习】N层架构(3)
- SysLink UserGuide
- 如何去掉UITableViewController中的分隔线setSeparatorStyle
- 阿里 2 年内市值将赶超苹果;腾讯回应吃鸡下架;滴滴恢复深夜运营 | 极客头条...
- jsp在ie6中css的margin属性失效问题
- TCP协议无边界的问题
- 灵活的javaScript
- 美图秀秀编辑器盖住了顶导怎么解决
- 为什么 fac_us=SystemCoreClock/8000000?
- 主机服务器信息控制台,服务器的监控控制台
- Android下载多张图片保存到本地
- 树莓派开发实战项目 智能家居--简单工厂模式(摄像头图片获取)
- 公司内局域网访问接口
- mysql中week()函数