本文提供 java实现根据远程url下载文件到浏览器片段代码,仅供参考。
可以实现,根据远程url地址下载推送至浏览器下载,这个方法可以解决因前端直接调用远程url下载出现的跨域问题。
/**
* 根据远程url下载文件
* @param url 远程URL
* @param response
*/
@RequestMapping("/url/download")
public void douYinVideoDownload(String url, HttpServletResponse response) {
BufferedInputStream inputStream = null;
try {
response.setContentType(MediaType.APPLICATION_OCTET_STREAM_VALUE);
// 下载时候的文件名称和后缀
FileUtils.setAttachmentResponseHeader(response, "test.zip");
URL path = new URL(url);
inputStream = new BufferedInputStream(path.openStream());
byte[] bytes = new byte[1024];
int len;
while ((len = inputStream.read(bytes)) != -1) {
response.getOutputStream().write(bytes, 0, len);
}
} catch (IOException e) {
e.printStackTrace();
} finally {
if (inputStream != null) {
try {
inputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}