Spring 项目,本地有一个录音文件,我需要以字节流的方式返回给前端,给我一个案例
在Spring项目中,你可以使用ResponseEntity<Resource>
返回录音文件作为字节流给前端。以下是一个简单的例子:
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 AudioController {
@GetMapping("/audio")
public ResponseEntity<Resource> getAudio() {
try {
// 本地文件路径
Path filePath = Paths.get("path/to/your/audio.mp3");
Resource resource = new UrlResource(filePath.toUri());
if (resource.exists() || resource.isReadable()) {
return ResponseEntity
.ok()
.contentType(MediaType.parseMediaType("audio/mp3"))
.body(resource);
} else {
throw new RuntimeException("Could not read the file!");
}
} catch (Exception e) {
throw new RuntimeException("Error: " + e.getMessage());
}
}
}
在这个例子中,我们创建了一个简单的REST控制器,其中包含一个方法getAudio()
,它会返回本地存储的音频文件。我们使用UrlResource
来封装文件路径,并检查文件是否存在和可读。然后,我们创建了一个ResponseEntity
,设置了响应的媒体类型为audio/mp3
,并将Resource
作为响应体返回。
当你访问/audio
端点时,Spring将会以字节流的形式发送音频文件给前端。确保你的Spring Boot应用有权限访问指定的音频文件路径。
评论已关闭