La procédure de sauvegarde du fichier téléchargé par la méthode save ()
sur le serveur dans la documentation officielle Uploading Files - Flask Documentation etc. Bien qu'il ait été introduit, je n'ai pas pu trouver un moyen de le lire tel quel sans enregistrer le fichier, je vais donc le laisser sous forme de mémorandum.
Dans Flask request.files.get ()
(ou request.files.getlist () [i] Exécuter
) vous donnera un objet Werkzeug datastructures.FileStorage
. Le flux
de cet objet est le corps de flux du fichier téléchargé. De plus, FileStorage.stream
semble hériter de ʻio.BufferedIOBase`, donc ce flux devrait être bouilli. Il semble qu'il devrait être cuit.
Si vous souhaitez lire le fichier téléchargé sous forme de texte, il est pratique d'en faire un flux de texte avec ʻio.TextIOWrapper`. ..
Voici un exemple qui lit un fichier CSV téléchargé depuis un client.
import io
from flask import Flask, jsonify, request
@app.route('/upload/', methods=['POST'])
def csv_upload():
filebuf = request.files.get('csvfile')
if filebuf is None:
return jsonify(message='Veuillez spécifier un fichier'), 400
elif 'text/csv' != filebuf.mimetype:
return jsonify(message='Seuls les fichiers CSV seront acceptés'), 415
text_stream = io.TextIOWrapper(filebuf.stream, encoding='cp932')
for row in csv.reader(text_stream):
# do something
return jsonify(message=f'{filebuf.filename!r}Chargé'), 200
Recommended Posts