从POST请求中返回视频

时间:2016-01-24 22:02:11

标签: rest http post go html5-video

我已经使用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。浏览器将显示视频播放器,但没有播放。 (如果我拖放已保存的文件,它会播放)

1 个答案:

答案 0 :(得分:0)

"内容 - 处置:附件"在这种情况下是不合适的。 The MDN has a good description

  

在常规HTTP响应中,Content-Disposition响应标头是一个标题,指示是否希望内容在浏览器中内联显示,即作为网页或作为网页的一部分显示,还是作为附件,在本地下载和保存。

如果您希望浏览器播放视频,请删除标题或将值更改为"内联"。