2017-01-04 2 views
0

次のコードを使用して、サーバー上のディレクトリにファイルをアップロードしています。ファイルをアップロードしてsubmitを押すたびに、 'file'がrequest.filesに見つかりません。何か案は?Flask Webアプリケーションはファイルをアップロードできません

views.py:

@app.route("/upload_file") 
def upload_file(self): 
    return self.render_template('upload_file.html') 

@app.route("/file_uploader", methods=['GET', 'POST']) 
def file_uploader(self): 
    if request.method == 'POST': 
     #application gets to this if block and returns 'No file part' 
     if 'file' not in request.files: 
      flash('No file part') 
      return redirect(request.url) 
     file = request.files['file'] 

がupload_file.html:

<h2>Please select a dataset to upload.</h2> 
<form method=post enctype=multipart/form-data action={{ url_for('file_uploader')}}> 
    <span class="btn btn-primary btn-file"> Browse <input type="file"></span> 
    <input type=submit class="btn btn-success" value=Upload> 
</form> 

答えて

1

私はあなたの問題はあなたの価値であると信じて、私はまた、あなたを明確にするrequest.filesを出力しますので、あなたのアプリケーションを修正することをお勧めしたいです応答オブジェクト。あなたのJinja2のテンプレートでは、次のように指定するようにコードを修正する必要があります。

<form method=post enctype=multipart/form-data action={{ url_for('file_uploader')}}> 
    <span class="btn btn-primary btn-file"> Browse 
     <input type=file name=file> 
    </span> 
    <input type=submit class="btn btn-success" value=Upload> 
</form> 
+1

私は<フォームメソッド=ポストのenctype =マルチパート/フォームデータ>

<入力タイプ=提出値=アップロード>

それは喜んで –

+0

を働いた! – Rob

関連する問題