java html 播放视频后台报错问题

下载图片或视频功能,若单独访问url可以下载视频文件,但是放再html的video src 上,后台反而会报错。请问要怎么样才能在界面播放视频呢

img


public void getFile(HttpServletRequest request, HttpServletResponse response, String fileName) {
        InputStream is = null;
        OutputStream os = null;
        try {
            String suffix = fileName.substring(fileName.lastIndexOf(".") + 1);
            if(VIDEOSUFFIX.contains(suffix)){
                response.setContentType("video/avi");
                fileName = fileName.replace(suffix,"avi");
            }else if(IMAGESUFFIX.contains(suffix)){
                response.setContentType("image//"+suffix);
            }else{
                throw new RuntimeException("文件类型错误");
            }
            File file = new File(uploadFilePath + File.separator + "runs" + File.separator + fileName);
            response.addHeader("Content-Length", "" + file.length());
            is = new FileInputStream(file);
            os = response.getOutputStream();
            IOUtils.copy(is, os);
        } catch (Exception e) {
            log.error("获取文件失败", e);
        } finally {
            if (null != os) {
                try {
                    os.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    }
<!DOCTYPE html>
<html>
<head>
    <title>上传图片或视频到后台并预览</title>
</head>
<body>
<h1>上传图片或视频到后台并预览</h1>
<div id="previewContainer">
    <video src="../getFile?fileName=b054799c-340f-48f3-b987-db93cd8ccb04.mp4" controls="" style="max-width: 500px; max-height: 500px;"></video>
</div>

</body>
</html>

参考这个试试:

Java后端接口返回视频流,使用video组件播放视频,实现分段下载_video 后端接口_m0_67401134的博客-CSDN博客 所以实现视频断点播放的大概思路为,先识别http请求头是否携带range请求头,如果携带则表示请求需要进行断点下载,识别出断点的位置后使用随机读取文件类RandomAccessFile进行一定范围的读写,之后返回设置Content-Range请求头表示返回数据的范围,并设置http状态码为206表示断点传输。小视频问题不大,视频大的话会卡顿很久,查看请求发现会先请求下载完整视频后开始播放。视频文件保存在不为人知的地方,总之前端不能直接访问的位置,需要通过后端接口取出来再返回给前端。如果后端直接这样子写。_video 后端接口 https://blog.csdn.net/m0_67401134/article/details/126738028

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^