Sam*_*aiT 12 python file-upload flask
我可以通过这个例子上传一个带烧瓶的文件:
但我不知道如何上传文件夹或一些文件.我搜索过,我发现了这个: 用Flask上传多个文件.最后,我得到了如何上传多文件上传.我会告诉你下面的代码:(这是一个好习惯吗?我不知道)
.
??? manage.py
??? templates
? ??? file_upload.html
? ??? hello.html
??? uploads
??? BX6dKK7CUAAakzh.jpg
??? sample.txt
Run Code Online (Sandbox Code Playgroud)
但是,我仍然不知道如何上传属于该文件夹的文件夹和文件.你能告诉我怎么样?
我正在处理的目录树:
from flask import Flask,abort,render_template,request,redirect,url_for
from werkzeug import secure_filename
import os
app = Flask(__name__)
UPLOAD_FOLDER = './uploads'
app.config['UPLOAD_FOLDER'] = UPLOAD_FOLDER
@app.route('/')
def index():
return redirect(url_for('hello'))
@app.route('/hello/')
@app.route('/hello/<name>')
def hello(name = None):
return render_template('hello.html',name=name)
@app.route('/upload/',methods = ['GET','POST'])
def upload_file():
if request.method =='POST':
file = request.files['file']
if file:
filename = secure_filename(file.filename)
file.save(os.path.join(app.config['UPLOAD_FOLDER'],filename))
return hello()
return render_template('file_upload.html')
if __name__ == '__main__':
app.run(debug = True)
Run Code Online (Sandbox Code Playgroud)
上传文件的源代码:
<!doctype html>
<title>Upload new File</title>
<h1>Upload new File</h1>
<form action='' method="POST" enctype="multipart/form-data">
<p><input type='file' name='file[]' multiple=''>
<input type='submit' value='upload'>
</p>
</form>
Run Code Online (Sandbox Code Playgroud)
文件上传模板(manage.py):
.
??? manage.py
??? templates
? ??? file_upload.html
? ??? hello.html
??? uploads
??? BX6dKK7CUAAakzh.jpg
??? sample.txt
Run Code Online (Sandbox Code Playgroud)
小智 8
file = request.files['file']
Run Code Online (Sandbox Code Playgroud)
将其更改为
file = request.files['file[]']
Run Code Online (Sandbox Code Playgroud)
这里的问题是烧瓶app.config与自身无关,它是绝对的。所以当你把:
UPLOAD_FOLDER = './uploads'
Run Code Online (Sandbox Code Playgroud)
flask 找不到此目录并返回500错误。如果您将其更改为:
UPLOAD_FOLDER = '/tmp'
Run Code Online (Sandbox Code Playgroud)
然后上传您的文件并导航到您会看到的 /tmp/ 目录。
您需要编辑正确目录的路径才能正确上传文件。
| 归档时间: |
|
| 查看次数: |
33306 次 |
| 最近记录: |