4

djangoでビデオmp4ファイルを応答として送信するには? 動画やhtmlのオブジェクトタグに埋め込みたくなく、mp4そのものを送りたい。誰でもこの問題を手伝ってもらえますか?

4

1 に答える 1

6

通常、これを行う必要はありません。Django 以外のサーバーにリダイレクトして静的ファイルを提供することをお勧めします。たとえば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

( docsFileWrapper ) は、一度に送信されるデータが多すぎないようにするために使用されます。これは、Python ファイル オブジェクトが一度に 1 行ずつ繰り返され、文字はおそらく mp4 では特に一般的ではないためです。(送信量が多すぎるということは、ウェブサーバーがファイルをハード ドライブから読み取ったときに送信できず、代わりに、ぎこちない間隔で長いインクリメントを待たなければならないことを意味します。)\n

これはドキュメントのどこにも記載されていませんが、ファイルは終了すると閉じられることに注意してください。

于 2012-05-08T06:10:34.573 に答える