1

我试图让我的处理程序检查文件上传的扩展名,以确保用户没有上传恶意软件或不相关的文件。我似乎无法找到一种方法来获取文件名服务器端。这个问题和另一个说只是得到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"]返回一个空值

4

3 回答 3

1

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

于 2013-07-31T21:41:45.830 回答
0

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

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

参考:

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

于 2013-08-01T02:22:36.670 回答
0

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

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

就像在这个问题中所说的那样。我第一次在我的代码中尝试这个其他东西一定是破坏了它,所以我认为该方法已经过时了。我想有时情况就是这样:)。

无论如何,谢谢你们的回答!!

于 2013-08-01T19:51:35.570 回答