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 に答える