获取上传到Flask的文件路径

时间:2017-01-26 21:04:23

标签: python flask

我有一个Python Web应用程序,它在Web浏览器中本地运行,以方便界面,处理用户选择的文件,并保存处理过的数据。我需要添加在选择文件的同一文件夹中创建新子目录的功能(即,如果文件是path / fname.txt,我需要创建路径/ 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

1 个答案:

答案 0 :(得分: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只允许访问文件名。

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