/**
* @author BNTang
* @date Created in 2020/12/1 19:49
* @description 根据URL地址动态加载URL返回的文件信息
*/
public class DownloadUrlFileUtils {
/**
* 将 url 返回的文件转变为 MultipartFile对象
*
* @param url 地址
* @param fileName 文件名称
* @return 转换结果
*/
public static MultipartFile createFileItem(String url, String fileName) {
FileItem item = null;
try {
HttpURLConnection conn = (HttpURLConnection) new URL(url + "/" + fileName).openConnection();
conn.setReadTimeout(30000);
conn.setConnectTimeout(30000);
// 设置应用程序要从网络连接读取数据
conn.setDoInput(true);
conn.setRequestMethod("GET");
if (conn.getResponseCode() == HttpURLConnection.HTTP_OK) {
InputStream is = conn.getInputStream();
FileItemFactory factory = new DiskFileItemFactory(16, null);
String textFieldName = "downloadFile";
item = factory.createItem(textFieldName, ContentType.APPLICATION_OCTET_STREAM.toString(), false, fileName);
OutputStream os = item.getOutputStream();
int bytesRead;
byte[] buffer = new byte[OperatingUnsoldConstant.READ_SIZE];
while ((bytesRead = is.read(buffer, OperatingUnsoldConstant.ZERO, OperatingUnsoldConstant.READ_SIZE)) != -1) {
os.write(buffer, OperatingUnsoldConstant.ZERO, bytesRead);
}
os.close();
is.close();
}
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException("file download error");
}
if (item != null) {
return new CommonsMultipartFile(item);
}
return null;
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具