Spring Boot 返回图片、音视频等流数据(多种方式)
在Spring Boot中,你可以使用ResponseEntity<Resource>
返回图片、音视频等流数据。以下是一个简单的例子,展示如何在Spring Boot中返回一个图片文件作为响应:
import org.springframework.core.io.Resource;
import org.springframework.core.io.UrlResource;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import java.nio.file.Path;
import java.nio.file.Paths;
@RestController
public class MediaController {
private final Path imageStoragePath = Paths.get("path/to/your/image/directory");
@GetMapping("/image")
public ResponseEntity<Resource> getImage() {
Resource image = loadImageAsResource("image.jpg");
return ResponseEntity.ok()
.contentType(MediaType.IMAGE_JPEG)
.body(image);
}
private Resource loadImageAsResource(String filename) {
try {
Path file = imageStoragePath.resolve(filename);
Resource resource = new UrlResource(file.toUri());
if (resource.exists() || resource.isReadable()) {
return resource;
} else {
throw new RuntimeException("Could not read the image: " + filename);
}
} catch (Exception e) {
throw new RuntimeException("Error loading image resource: " + filename, e);
}
}
}
确保你的Spring Boot应用有权访问图片存储路径,并且已经配置了正确的静态资源映射(如果图片存储在静态资源目录下)。
对于音视频文件,你可以通过修改getImage
方法中的MediaType
和文件扩展名来提供不同的媒体类型,例如MediaType.VIDEO_MP4
对应MP4视频文件,MediaType.AUDIO_MP3
对应MP3音频文件。
评论已关闭