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'但在瓶中的映射網址就是'/ FOLDERNAME/filename'這似乎表明右邊鏈接'/ file0wr5ug4y/Screen_Shot_2017-01-25_at_11.23.48_AM.png'(注意:沒有'/ uploads')。試試看看它是如何發展的。 –
該文檔說,從tempfile.mkdtemp()返回的值是絕對路徑,我的測試證實這是準確的。前綴已經在變量值中,如果我將前綴添加到路由中,我會在URL中獲得一個雙重前綴。 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
爲什麼不能' app.route('/ uploads//')',然後'返回send_from_directory('/ uploads/{}/{}'。格式(文件夾名,文件名))' –