4
如何在django中發送視頻mp4文件作爲響應?我不想嵌入html的視頻或對象標籤,但想要發送mp4本身。任何人都可以請幫助解決這個問題?在django發送視頻作爲響應
如何在django中發送視頻mp4文件作爲響應?我不想嵌入html的視頻或對象標籤,但想要發送mp4本身。任何人都可以請幫助解決這個問題?在django發送視頻作爲響應
通常你不想這樣做;最好重定向到非Django服務器到serve static files,例如django.shortcuts.redirect
- 它會更快,更具有內存效率,並且可能更安全。但當然有時這並不方便。這應該工作:
from wsgiref.util import FileWrapper
file = FileWrapper(open('path/to/video.mp4', 'rb'))
response = HttpResponse(file, content_type='video/mp4')
response['Content-Disposition'] = 'attachment; filename=my_video.mp4'
return response
的FileWrapper
(docs)用於讓太多的數據是不是在發送一次,因爲Python文件對象重複在時間線,和\n
人物想必不是特別常見在mp4s。 (發送太多意味着Web服務器無法發送文件,因爲它從硬盤驅動器中讀取,而不得不等待較長的笨拙間距增量。)
請注意,雖然我沒有看到在文件的任何地方,文件does get closed when it's done with。
感謝Dougal其工作,但它的下載與我打在瀏覽器中的網址。我不希望那樣,我想要mp4在瀏覽器本身播放。此外,它的一個小視頻文件約10 MB,所以我不想使用任何其他非Django服務器。 – Jay
試着拿出Content-Disposition行,這可能有幫助。但如果這是一個生產網站,你應該已經在Django以外的地方爲你的CSS和圖像等提供服務...... – Dougal
我試着拿出Content-Disposition行,我得到一個錯誤,名爲「error:[Errno 32]損壞的管道「 – Jay