获取文件上传的名称 - Google App Engine Python

时间:2013-07-31 21:37:40

标签: python html google-app-engine

我正在尝试让我的处理程序检查文件上传的扩展名,以确保用户不上传恶意软件或无关文件。我似乎无法找到获取文件名服务器端的方法。 This问题和另一个问题只是获得self.request.get("file_input_name_attr").filename,但在最近的GAE版本中,文件对象是一个字符串,因此无法请求filename

以下是我表格的相关部分:

<form action="/path" method="post" enctype="multipart/form-data">
    <input type="file" name="uploadFile" />
</form>

有些帖子(约会2年前)说要做

self.request.POST["uploadFile"].filename

但对我来说self.request.POST["uploadFile"]会返回空值

3 个答案:

答案 0 :(得分:1)

请参阅Blobstore Python API Overview,了解如何使用Appengine上传文件。

答案 1 :(得分:0)

您可能需要将文件名作为单独的POST参数或url参数传递。

self.request.POST["filename"] usually contains the actual file name.

参考:

http://www.cs.tut.fi/~jkorpela/forms/file.html#name

答案 2 :(得分:0)

事实证明,正确的做法是:

self.request.params["uploadFile_or_whatever_the_input_name_is"].filename

就像this问题中所述。我第一次尝试在我的代码中的其他东西一定是打破它所以我认为该方法已经过时。我想有时会这样::)。

无论如何,谢谢你的答案!!