[英]Uploading a text file in Flask and reading it in html
我正在尝试上传一个简单的文本文件,然后在 flask 中的另一个 URL 中显示它。 但是,我得到了一个空白的 output 和b"作为唯一显示的东西。它只是一个带有 utf-8 的常规文本文件。
这是代码 -
def upload_source():
if request.method == 'POST':
# check if the post request has the file part
f = request.files['file']
if f.filename == "":
print("No file Name")
return redirect(request.url)
if not allowed_file(f.filename):
print("File extension not allowed!")
return redirect(request.url)
else:
full_filename = secure_filename(f.filename)
f.save(os.path.join(app.config['UPLOAD_FOLDER'], full_filename))
print("File saved")
content = f.read()
return render_template('source.html', text=content)
我将它包含在源代码 html
<p> {{ text }} </p>
我对 python 和 flask 比较陌生,在这里感谢您的帮助。 谢谢!
感谢这篇文章的评论者,我可以想出一个解决办法。 最初,在仅使用only f.read()
之后,我得到了一个b"作为唯一的 output 。
当我使用f.seek(0)
时,我得到了我的文本文件的 output 但有很多编码和格式错误,包括一个新的前面的 b`,然后是我的 output。
但添加content = f.read()
content = str(content, 'utf-8')
也修复了大部分问题。
所以这是最终的解决方案-
def upload_source():
if request.method == 'POST':
# check if the post request has the file part
f = request.files['file']
if f.filename == "":
print("No file Name")
return redirect(request.url)
if not allowed_file(f.filename):
print("File extension not allowed!")
return redirect(request.url)
else:
full_filename = secure_filename(f.filename)
f.save(os.path.join(app.config['UPLOAD_FOLDER'], full_filename))
f.seek(0)
print("File saved")
content = f.read()
content = str(content, 'utf-8')
return render_template('source.html', text=content)
并且不要忘记同样的旧 HTML -
<p> {{ text }} </p>
我希望这也可以帮助其他人。 谢谢!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.