@RequestMapping("/file/**")
public Object proxyDownloadUrl(HttpServletRequest request) throws Exception {
String url = "http://127.0.0.1:8080" + request.getRequestURI();
URL urlimg = new URL(url);
//创建链接对象
URLConnection urlConnection = urlimg.openConnection();
//设置超时
urlConnection.setConnectTimeout(1000);
urlConnection.setReadTimeout(5000);
urlConnection.connect();
//获取流
InputStream inputStream = urlConnection.getInputStream();
String fileName = url.substring(url.lastIndexOf('/') + 1);
String contentType = urlConnection.getContentType();
long contentLength = urlConnection.getContentLengthLong();
InputStreamResource resource = new InputStreamResource(inputStream);
// 设置 HTTP 响应头
HttpHeaders headers = new HttpHeaders();
headers.add(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename=\"" + fileName + "\"");
headers.add(HttpHeaders.CONTENT_TYPE, contentType);
if (contentLength > 0) {
headers.setContentLength(contentLength);
}
// 发送响应实体
return ResponseEntity.ok()
.headers(headers)
.contentType(MediaType.parseMediaType(contentType))
.body(resource);
}
springboot(47) : 网络资源转发到前端
最新推荐文章于 2024-09-25 18:18:58 发布