0
という名前にリダイレクト。私は物事をちょっと分類するために、各ファイルをランダムに生成されたフォルダ名に入れようとしています。フラスコは私がします(最終的に)小さなアプリケーションを構築していますランダムフォルダ
まず、アップロードリダイレクトが機能していますが、ほとんど存在していますが、ファイルが存在していてもファイルがランダムに生成されたフォルダ名にリダイレクトするようには思えませんアップロードされました。
ここ私はこれを達成しています方法です...リダイレクトで
@app.route('/upload', methods=['POST'])
def upload():
file = request.files['file']
if file and allowed_file(file.filename):
filename = secure_filename(file.filename)
foldername = tempfile.mkdtemp(prefix='file', dir='uploads')
file.save(os.path.join(foldername, filename))
return redirect(url_for('uploaded_file', foldername=foldername, filename=filename))
else:
return '<h3>Invalid File, PDF or image only.</h3>'
@app.route('/<foldername>/<filename>')
def uploaded_file(foldername, filename):
return send_from_directory(filename)
、ファイルが正しい場所にあり、そしてフォルダが正しい場所にあり、ブラウザは右に向かっていますフラスコ404sそれは...
192.168.1.69 - - [29/Jan/2017 22:32:19] "GET/HTTP/1.1" 200 -
192.168.1.69 - - [29/Jan/2017 22:32:25] "POST /upload HTTP/1.1" 302 -
192.168.1.69 - - [29/Jan/2017 22:32:25] "GET /uploads/file0wr5ug4y/Screen_Shot_2017-01-25_at_11.23.48_AM.png HTTP/1.1" 404 -
のように見えるあなたは '/アップロード/ fileXXXXX'にアクセスしているが、フラスコ内のマップされたURLは、単に右のリンクを示唆しているようだ' /フォルダ名/ filename'されています'/ file0wr5ug4y/Screen_Shot_2017-01-25_at_11.23.48_AM.png'(注:'/uploads'なしで)です。それを試して、それがどうなるかを見てください。 –
ドキュメントは、tempfile.mkdtemp()から返された値は絶対パスであり、私のテストはそれが正確であることを確認します。プレフィックスは既に変数値にあります。プレフィックスをルートに追加すると、URLに2つのプレフィックスが付きます。 192.168.1.69 - [29/Jan/2017 22:52:30] "GET /uploads/uploads/filef8gs8rdb/Screen_Shot_2017-01-25_at_10.44.53_AM.png HTTP/1.1" 404 - – RNC
どうしたらいいですか@ format(foldername、filename)) ' –