python - 如何在web2py中访问临时上传的文件?

标签 python file-upload cgi web2py file-storage

我正在使用 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/

相关文章:

python - 维护Python中输入和输出之间的顺序

jsf - Trinidad/ADF Faces、文件上传、EOFException

javascript - IE8正在将表单提交到当前页面

c - int值意外改变

python - postgres/sqlalchemy/python : converting sqlalchemy. sql.selectable.Select 到 sqlalchemy.orm.query.Query?

python - Beautiful Soup 找不到这个 html

python - 使用For,While和Try的Python缩进

javascript - 使用 chrome 扩展程序将图像上传到服务器

servlets - CGI、WSGI、servlet 和类似概念有什么大不了的?

CGI-- 临时文件