废话不多说,直接上代码
一、异常捕捉类
public class BusinessException extends RuntimeException {
public BusinessException(String msg){
super(msg);
二、转换类
package com.example.answer_system.utils;
import org.springframework.mock.web.MockMultipartFile;
import org.springframework.web.multipart.MultipartFile;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLConnection;
//文件转换工具
public class FileUtils {
* 将网络文件转换为文件流
* @param imageUrl
* @return
public static MultipartFile fileUrlConvertToMultipartFile(String imageUrl) {
try {
// 将在线图片地址转换为URL对象
URL url = new URL(imageUrl);
// 打开URL连接
URLConnection connection = url.openConnection();
// 转换为HttpURLConnection对象
HttpURLConnection httpURLConnection = (HttpURLConnection) connection;
// 获取输入流
InputStream inputStream = httpURLConnection.getInputStream();
// 读取输入流中的数据,并保存到字节数组中
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
byte[] buffer = new byte[1024];
int bytesRead;
while ((bytesRead = inputStream.read(buffer)) != -1) {
byteArrayOutputStream.write(buffer, 0, bytesRead);
// 将字节数组转换为字节数组
byte[] bytes = byteArrayOutputStream.toByteArray();
// 创建ByteArrayInputStream对象,将字节数组传递给它
ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(bytes);
// 创建MultipartFile对象,将ByteArrayInputStream对象作为构造函数的参数
MultipartFile multipartFile = new MockMultipartFile("file", "filename.jpg", "image/jpg", byteArrayInputStream);
return multipartFile;
}catch (IOException ex){
ex.printStackTrace();
throw new BusinessException("附件无效");
public InputStream getInputStreamByUrl(String strUrl) {
HttpURLConnection conn = null;
try {
URL url = new URL(strUrl);
conn = (HttpURLConnection...
是 Java 中用于处理 HTTP 文件上传的一个接口。它通常与 Spring 框架一起使用,特别是在 Spring MVC 中,用于处理。类型的 HTTP 请求。当用户在网页表单中选择并上传文件时,服务器端的控制器方法可能会接收一个或多个。类型的参数来接收上传的文件。
try {
URL videoImagePathUrl = new URL("file:///"+videoImagePath); //一定要加 file:///
File f=new File(videoImagePathUrl.toURI());
public static File getFile(String url) throws Exception {
//对本地文件命名
String fileName = url.substring(url.lastIndexOf("."),url.length());
File file = null;
URL urlfile;
InputStream inStream = null;
OutputStream os = null;
try {
ExcelReader excelReader = ExcelUtil.getReader(new File("C:\\Users\\20011709\\Desktop\\新建 Microsoft Excel 工作表.xlsx"));// logger.info("文件名为:" + fileName + " 大小" + (conn.getContentLength()/1024)+"KB" + " contentType=" + type);
Java url转MultipartFile inputStream转File file转multipartFile
* url转MultipartFile
* @param url
* @return
* @throws Exception
public static MultipartFile urlToMultipartFile(String url) throws Exception {
File file = null;
MultipartFile mu
URL url = new URL("http://XXX");
//保存到D盘
File targetFile = new File("D:\\temp\\a.zip"); //只写a.zip保存到 主目录下
//把URL里的内容,拷贝到文件。
FileUtils.copyURLToFile(url, dirfile);
//执行保存
dirfile.createNewFile(); //不写这个代码,不会执行保存。
public static MultipartFile fileToMultipartFile(File file) throws IOException {
FileItemFactory factory = new DiskFileItemFactory(16, null);
FileItem item=factory.createItem(file.getName(),"text/plain",true,file.getName());
int byte.
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileItemFactory;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.springframework.web.multipart.MultipartFile;
工作中一场景,需要把fastdfs服务器上的远程文件转化成MultipartFile,用来上传到minio服务器上。遇到一个问题,需要动态的获取到文凭的ContentType,以确保文件或图片能正常在浏览器中预览或下载(图片预览,其他文件直接下载),因为如果ContentType类型设置不正确会导致文件不能正常预览或下载。