如何限制上传到 Flask 只允许.csv
上传文件?我一直在努力,但做不到。
到目前为止,我已经设法阻止所有文件或上传所有文件。我只需要上传.csv
文件。
这是我尝试过的:
UPLOAD_FOLDER = "/Users/osito/Desktop/efisys-git/efisys/Webb_App/static/archivos"
app.config['UPLOAD_FOLDER'] = UPLOAD_FOLDER
ALLOWED_EXTENSIONS = set(['csv'])
def allowed_file(filename):
return '.' in filename and filename.rsplit('.', 1)[1].lower() in ALLOWED_EXTENSIONS
@app.route("/carga", methods=["GET", "POST"])
def carga():
if request.method == "POST":
archivo = request.form['archivo']
if archivo.filename == "":
flash(u"NO selected file", 'error')
if not allowed_files(archivo.filename):
flash(u'only csv files', 'error')
return redirect(request.url)
return render_template('home.html')
这是HTML ..
<input id="upload" type="file" name="file" onchange="readURL();"/>
<form action="/carga" method="POST" enctype="multipart/form-data">
<h2>Suba Aquí su Archivo CSV </h2>
<div class="form-group area">
<input type="hidden" class="form-control" name="archivo" id="archivo">
</div>
<button type="submit" name="archivo" class="btn btn primary">Subir</button>
</form>