springboot下载网络图片
时间: 2023-10-28 09:02:10 浏览: 113
你可以使用Java中的URLConnection和InputStream来下载网络图片。以下是一个使用Spring Boot的示例代码:
```java
import org.springframework.util.StreamUtils;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RestController;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
import java.net.URLConnection;
@RestController
public class ImageController {
@GetMapping("/download/{url}")
public String downloadImage(@PathVariable String url) {
try {
// 创建URL对象
URL imageUrl = new URL(url);
// 打开连接
URLConnection connection = imageUrl.openConnection();
// 设置请求属性,防止被网站拒绝访问
connection.setRequestProperty("User-Agent", "Mozilla/5.0");
// 获取输入流
InputStream inputStream = connection.getInputStream();
// 使用Spring的StreamUtils复制输入流到输出流
String localPath = "path/to/save/image.jpg";
FileOutputStream outputStream = new FileOutputStream(localPath);
StreamUtils.copy(inputStream, outputStream);
// 关闭流
outputStream.close();
inputStream.close();
return "Image downloaded successfully!";
} catch (IOException e) {
e.printStackTrace();
return "Failed to download image.";
}
}
}
```
在上述示例中,我们创建了一个`ImageController`来处理下载图片的请求。在`downloadImage`方法中,我们首先创建一个URL对象,然后打开连接并设置请求属性以避免被网站拒绝访问。接着,我们获取输入流并使用Spring的`StreamUtils`将其复制到输出流中,最后关闭流。
你可以将上述代码放到一个Spring Boot项目中,并通过访问`/download/{url}`来下载指定URL的图片。记得将`path/to/save/image.jpg`替换为你想要保存图片的本地路径。
阅读全文