我正在使用 sqlform 上传视频文件,并希望在上传时对视频文件进行编码。但我注意到上传文件在完全上传之前并未保存到上传目录中。是否有临时文件以及如何访问它?谢谢。
最佳答案
我不确定您如何在上传文件时处理该文件(即处理服务器收到的字节),但如果您可以等到文件完全上传,则可以以 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 中。请注意,如果编码需要一段时间,您可能希望将其传递到任务队列,而不是在 Controller 中处理它。
关于python - 如何在web2py中访问临时上传的文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10878309/