python - 为什么我的代码将文件与服务器文件一起保存,而不是在上传文件夹中?
问题描述
我是烧瓶的新手,并试图让用户将我的脚本上传文件到脚本文件夹内的上传文件夹,但是当我用一个简单的文件测试脚本时,我将它上传到我的脚本运行的同一路径而不是上传文件夹
upload_path_ = "/uploads"
app = flask.Flask(__name__)
app.config["DEBUG"] = True
app.config["UPLOAD_FOLDER"] = upload_path_
@app.route('/upload')
def upload_file():
return render_template('upload.html')
## uploading files to the server
@app.route('/uploader' , methods=['GET', 'POST'])
def upload():
if request.method == 'POST':
f = request.files['file']
f.save(secure_filename("sth"))
return "File uploaded successfully "
解决方案
如Flask 文档中所示,UPLOAD_FOLDER
配置名称不会作为全局设置告诉 Flask 将所有内容发送到您设置的目录。它被用作在您的应用程序设置时存储信息并在您需要的任何地方检索它的一种方式。
所以尝试替换这一行:
f.save(secure_filename("sth"))
经过
f.save(os.path.join(app.config['UPLOAD_FOLDER'], "sth"))
推荐阅读
- postgresql - PostgresSQL 错误 - 真实数据类型的问题
- javascript - 将数组转换为嵌套 JSON
- java - 无法从文件路径列出父目录
- postgresql - TOAST 在 MVCC Postgres 中的行为方式
- wordpress - 在 WooCommerce 中隐藏特定时间的运输方式
- python - Python:将许多 2D 列表附加到一个 2D 列表
- python - MySQL SQLALCHEMY Python 获取时间戳的最大计数
- sql - SQL - BigQuery - 如何从日历表中填写日期?
- typescript - TypeScript - 使用 toml 解析后对象上不存在属性
- node.js - Steam 上的节点发布请求