我正在使用sqlform上传视频文件,并希望在上传时对视频文件进行编码。但我注意到上传文件没有保存到上传目录,直到完全上传。是否有临时文件,如何访问它?谢谢。
答案 0 :(得分: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中。请注意,如果编码需要一段时间,您可能希望将其传递给任务队列而不是在控制器中处理它。