我已经使用Go为自己构建了一个简单的服务器并遇到了一些奇怪的问题。
我创建了一个路径“/ transcoding”,用户可以使用多部分视频文件发出POST HTTP请求并接收修改后的视频。
我遇到的问题是,在回复中返回视频时,它似乎无法在Chrome / Safari / Firefox中自动播放。
我知道正在返回的视频是有效的,因为如果我使用curl / httpie或save将内容类型设置为附件,则生成的文件可以正常播放。
这可能是POST-GET-REDIRECT吗?
http -f POST http://localhost:8080/transcode input@~/Downloads/sample.mp4
HTTP/1.1 200 OK
Accept-Ranges: bytes
Content-Disposition: attachment; filename=output.mp4
Content-Length: 398037
Content-Type: video/mp4
Date: Sun, 24 Jan 2016 22:00:00 GMT
Last-Modified: Sun, 24 Jan 2016 22:00:00 GMT
+-----------------------------------------+
| NOTE: binary data not shown in terminal |
+-----------------------------------------+
上面的示例显示我已正确设置Content-Length和Content-Type。浏览器将显示视频播放器,但没有播放。 (如果我拖放已保存的文件,它会播放)
答案 0 :(得分:0)
"内容 - 处置:附件"在这种情况下是不合适的。 The MDN has a good description:
在常规HTTP响应中,Content-Disposition响应标头是一个标题,指示是否希望内容在浏览器中内联显示,即作为网页或作为网页的一部分显示,还是作为附件,在本地下载和保存。
如果您希望浏览器播放视频,请删除标题或将值更改为"内联"。