我正在编写我的第一个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'包含文件的内容/数据..有什么想法吗?
file = request.files.get('file')
filetype = magic.from_buffer(file.read(1024))
翻译:获取文件:file = request.files.get('file')
,通过读取文件前1024个字节获取文件类型:filetype = magic.from_buffer(file.read(1024))
。 - endolithf = request.files['file']
将上传的文件(在请求中)放到变量“f”中。然后,使用上面的代码f.read()
。当执行print f.read()
时,终端会输出正确的文件内容。希望这可以帮到你。 - Marcmystring = TextIOWrapper(binary_stream)
。注意不要改变原意,使翻译更加通俗易懂。 - Dutch Mastersf.read()
也没有产生任何结果。调用f.seek(0)
首先可以解决这个问题。 - w177us