1

我正在使用 sqlform 上传视频文件,并希望在上传时对视频文件进行编码。但是我注意到上传文件在完全上传之前并没有保存到上传目录。是否有临时文件,如何访问它?谢谢。

4

1 回答 1

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 中。请注意,如果编码需要一段时间,您可能希望将其传递给任务队列,而不是在控制器中处理它。

于 2012-06-04T14:29:50.553 回答