Я использую sqlform для загрузки видеофайла и хочу кодировать видеофайл при загрузке. Но я заметил, что файл загрузки не сохраняется в каталоге загрузки, пока он полностью не загружен. Есть ли временный файл и как я могу получить к нему доступ? Спасибо.
Как получить доступ к временному загруженному файлу в web2py?
Ответы (1)
Я не уверен, как вы могли бы обрабатывать файл во время его загрузки (т. е. обрабатывать байты по мере их получения сервером), но если вы можете дождаться полной загрузки файла, вы можете получить доступ к загруженному файлу. файл как объект Python cgi.FieldStorage:
def upload():
if request.vars.myfile:
video = encode_video(request.vars.myfile.file)
[do something with video]
form = SQLFORM.factory(Field('myfile', 'upload',
uploadfolder='/path/to/upload')).process()
return dict(form=form)
После загрузки request.vars.myfile будет объектом cgi.FieldStorage, а объект открытого файла будет находиться в request.vars.myfile.file. Обратите внимание: если кодирование занимает некоторое время, вы можете передать его в очередь задач, а не обрабатывать в контроллере.
person
Anthony
schedule
04.06.2012
Ну, я просто не могу дождаться, пока файл полностью загрузится. Он должен кодироваться при загрузке. Все равно спасибо.
- person Treper; 04.06.2012