Asked By – user2480542
I am writing my first flask application. I am dealing with file uploads, and basically what I want is to read the data/content of the uploaded file without saving it and then print it on the resulting page. Yes, I am assuming that the user uploads a text file always.
Here is the simple upload function i am using:
@app.route('/upload/', methods=['GET', 'POST']) def upload(): 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)) a = 'file uploaded' return render_template('upload.html', data = a)
Right now, I am saving the file, but what I need is that ‘a’ variable to contain the content/data of the file .. any ideas?
Now we will see solution for issue: Read file data without saving it in Flask
stream field. This object must extend IO or file object, so it must contain
read and other similar methods.
FileStorage also extend
stream field object attributes, so you can just use
file.stream.read(). Also you can use
save argument with
dst parameter as
StringIO or other IO or file object to copy
FileStorage.stream to another IO or file object.