获取上传到 Flask 的文件路径 [重复]

Posted

技术标签:

【中文标题】获取上传到 Flask 的文件路径 [重复]【英文标题】:Get path of file uploaded to Flask [duplicate] 【发布时间】:2017-06-12 11:38:19 【问题描述】:

我有一个 Python Web 应用程序,它在 Web 浏览器中本地运行以方便界面,处理用户选择的文件,并保存处理后的数据。我需要添加在选择文件的同一文件夹中创建新子目录的功能(即,如果文件是 path/fname.txt,我需要创建 path/fname/ 可以放置处理数据的位置)。如何访问该文件的路径?

在其他项目中,我已经单独询问了路径,但这很笨拙,我不想让用户为每个文件执行这个无关的步骤。

@app.route('/getthefile', methods=['POST'])
def getthefile():
    file = request.files['myfile']
    filename = secure_filename(file.filename)
    new_path = os.path.abspath(filename)
    # gives me the wrong path

【问题讨论】:

你是怎么解决这个问题的? @Navi this 有帮助吗? 找不到页面@GitauHarrison 【参考方案1】:

为了不暴露有关客户端系统的不必要信息,只有文件名随 HTTP 请求一起发送。不发送完整路径。看看HTTP multipart/form-data request:

Content-Type: multipart/form-data; boundary=AaB03x

--AaB03x
Content-Disposition: form-data; name="submit-name"

Larry
--AaB03x
Content-Disposition: form-data; name="files"; filename="file1.txt"
Content-Type: text/plain

... contents of file1.txt ...
--AaB03x--

如您所见,信息非常少。未提供路径。

同样,File API 只允许访问文件名。

很遗憾,您将无法从文件输入中获取完整路径。

【讨论】:

以上是关于获取上传到 Flask 的文件路径 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

flask-文件上传的使用

flask-上传图片

使用文件名获取文件的路径[重复]

如何读取上传文件中的整个文件路径[重复]

16Flask实战第16天:Flask文件上传

spring mvc怎么获取上传文件的原路径