如果只需要转File,无需导入maven
<!-- 转MultipartFile才需要导这个maven包 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
</dependency>
import java.io.*;
import java.net.URL;
import org.apache.http.entity.ContentType;
import org.springframework.mock.web.MockMultipartFile;
// url: 链接,可访问的图片,视频,或其他文件
public MultipartFile urlTransferMultipartFile(String url){
//对本地文件命名,可以从链接截取,可以自己手写,看需求
String fileName = "img_test"
// String fileName = url.substring(url.lastIndexOf("."));
File file = null;
URL urlfile;
InputStream inStream = null;
OutputStream os = null;
MultipartFile multipartFile = null;
try {
file = File.createTempFile("net_url", fileName);
//下载
urlfile = new URL(url);
inStream = urlfile.openStream();
os = new FileOutputStream(file);
int bytesRead = 0;
byte[] buffer = new byte[8192];
while ((bytesRead = inStream.read(buffer, 0, 8192)) != -1) {
os.write(buffer, 0, bytesRead);
}
// file转multipartFile,如果只需要转File就不用加下面这两行代码,直接返回File即可
FileInputStream inputStream = new FileInputStream(file);
multipartFile = new MockMultipartFile(file.getName(), file.getName(),
ContentType.APPLICATION_OCTET_STREAM.toString(), inputStream);
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (null != os) {
os.close();
}
if (null != inStream) {
inStream.close();
}
// 用完删除
if (null != file){
file.delete();
}
} catch (Exception e) {
e.printStackTrace();
}
}
// 按需返回file还是multipartFile
return multipartFile;
}