获取上传到 Flask 的文件路径

K H*_*tch 3 python flask

我有一个 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
Run Code Online (Sandbox Code Playgroud)

The*_*uhn 5

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

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--
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,信息非常少。未提供路径。

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

不幸的是,您将无法从文件输入中获取完整路径。