如何仅选择要上传到烧瓶的csv文件类型?

问题描述 投票:-1回答:4

我一直在尝试,但无法做到。我真的是新来的烧瓶。

我已经尝试过,但是我只能阻止所有文件或上传所有文件...我只需要上传CSV文件..

我一直在尝试,但无法做到。我真的是使用flask的。。

这样的情况可能会解决问题:
if filename.rsplit('.', 1)[1].lower()=='csv': # >>> process file here <<<

这是我尝试过的。...
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') else: # filename = secure_filename(archivo.filename) # archivo.save(os.path.join(app.config["FILE_UPLOADS"], archivo.filename)) # print(archivo.filename, type(archivo), archivo.filename.split('.')[0]) # success_message = "Archivo uploaded: ", archivo.filename # flash(success_message) # print("fil saved") if request.method == 'POST': archivo = request.form['archivo'] error = None if error is not None: flash(error) else: db = get_db() db.execute('INSERT INTO archivos_csv (archivo) VALUES (?)'(archivo)) db.commit() return redirect(url_for('carga')) return redirect(request.url) return render_template('carga.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>

您可以查看这篇文章可能会有所帮助:D
有一个示例,允许您指定允许的扩展名

ALLOWED_EXTENSIONS = {'txt','pdf','png','jpg','jpeg','gif'}

因此,请尝试使用一种输入形式将其替换为csv

python file csv uploading flask-uploads
4个回答
0
投票

0
投票

0
投票

-1
投票
© www.soinside.com 2019 - 2024. All rights reserved.