我正在编写我的第一个 flask 应用程序。我正在处理文件上传,基本上我想要的是读取上传文件的数据/内容而不保存它,然后将其打印在结果页面上。是的,我假设用户始终上传文本文件。

这是我正在使用的简单上传功能:

@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)

现在,我正在保存文件,但是我需要的是一个'a'变量来包含文件的内容/数据。

最佳答案

FileStorage包含stream字段。该对象必须扩展IO或文件对象,因此它必须包含read和其他类似方法。 FileStorage还扩展了stream字段对象属性,因此您可以仅使用file.read()代替file.stream.read()。您也可以将save参数与dst参数一起用作StringIO或其他IO或文件对象,以将FileStorage.stream复制到另一个IO或文件对象。

请参阅文档:http://flask.pocoo.org/docs/api/#flask.Request.fileshttp://werkzeug.pocoo.org/docs/datastructures/#werkzeug.datastructures.FileStorage

关于python - 读取文件数据而不将其保存在Flask中,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20015550/

10-09 08:22
查看更多