写一个图片下载接口,以response的方式返回
时间: 2024-02-24 07:00:31 浏览: 22
好的,以下是一个简单的图片下载接口的示例代码:
```java
@RequestMapping(value = "/downloadImage", method = RequestMethod.GET)
public void downloadImage(@RequestParam("imageUrl") String imageUrl, HttpServletResponse response) throws Exception {
URL url = new URL(imageUrl);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("GET");
conn.setConnectTimeout(5000);
conn.setReadTimeout(5000);
conn.setRequestProperty("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36");
if (conn.getResponseCode() == HttpURLConnection.HTTP_OK) {
InputStream inputStream = conn.getInputStream();
OutputStream outputStream = response.getOutputStream();
byte[] buffer = new byte[1024];
int len = 0;
while ((len = inputStream.read(buffer)) != -1) {
outputStream.write(buffer, 0, len);
}
outputStream.flush();
inputStream.close();
outputStream.close();
} else {
throw new RuntimeException("Failed to download image: " + conn.getResponseCode() + " " + conn.getResponseMessage());
}
}
```
该接口使用 GET 方法,接收一个 imageUrl 参数,表示要下载的图片的 URL。接口会打开该 URL,获取图片数据,并将数据以 response 的方式返回给客户端。客户端可以通过浏览器访问该接口,或者使用 HTTP 客户端工具发送 GET 请求,即可下载图片。
需要注意的是,该接口没有进行任何的图片格式检查和校验,因此可能存在安全隐患。在实际应用中,需要根据实际情况对接口进行安全性检查和处理。