Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/336.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
正在获取文件上载的名称-Google应用程序引擎Python_Python_Html_Google App Engine - Fatal编程技术网

正在获取文件上载的名称-Google应用程序引擎Python

正在获取文件上载的名称-Google应用程序引擎Python,python,html,google-app-engine,Python,Html,Google App Engine,我试图让我的处理程序检查文件上载的扩展名,以确保用户没有上载恶意软件或无关文件。我似乎找不到一种方法来获取服务器端的文件名。问题和另一个问题被称为只获取self.request.get(“file\u input\u name\u attr”).filename,但在GAE的最新版本中,file对象是字符串,因此不能要求获取filename 以下是我表格的相关部分: <form action="/path" method="post" enctype="multipart/form-dat

我试图让我的处理程序检查文件上载的扩展名,以确保用户没有上载恶意软件或无关文件。我似乎找不到一种方法来获取服务器端的文件名。问题和另一个问题被称为只获取
self.request.get(“file\u input\u name\u attr”).filename
,但在GAE的最新版本中,file对象是字符串,因此不能要求获取
filename

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

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

但对我来说,
self.request.POST[“uploadFile”]
返回一个空值

请参阅,查看如何使用Appengine上载文件。

请参阅,查看如何使用Appengine上载文件。

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

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


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

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


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

self.request.params["uploadFile_or_whatever_the_input_name_is"].filename
正如前面提到的。我第一次尝试这个方法时,我的代码中肯定有其他东西破坏了它,所以我认为这个方法已经过时了。我想有时候就是这样:)


谢谢你们的回答

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

self.request.params["uploadFile_or_whatever_the_input_name_is"].filename
正如前面提到的。我第一次尝试这个方法时,我的代码中肯定有其他东西破坏了它,所以我认为这个方法已经过时了。我想有时候就是这样:)


谢谢你们的回答

我不想使用Blobstore,因为我不想保存文件数据。我只是将上传的文件附加到一封电子邮件中,发送出去,然后忘记它。你需要将它与Blobstore一起上传,然后删除它。Appengine没有临时文件系统。也许我需要澄清一下。我只想从文件中得到它的扩展名和内容。我已经有内容了,我只想要分机。我不担心设置文件系统。使用Blobstore对于一个简单的工作来说是很昂贵的。我宁愿不使用Blobstore,因为我不想保存文件数据。我只是将上传的文件附加到一封电子邮件中,发送出去,然后忘记它。你需要将它与Blobstore一起上传,然后删除它。Appengine没有临时文件系统。也许我需要澄清一下。我只想从文件中得到它的扩展名和内容。我已经有内容了,我只想要分机。我不担心设置文件系统。使用Blobstore对于一个简单的工作来说是昂贵的。我如何告诉我的表单通过它?您引用的站点建议浏览器包含文件名,但什么是普通键?我尝试了“filename”,但它引发了一个键错误。正如问题中提到的,我尝试了输入的名称,但尽管它没有引起错误,结果却是空的。对不起,我的无知…我该如何告诉我的表格通过它?您引用的站点建议浏览器包含文件名,但什么是普通键?我尝试了“filename”,但它引发了一个键错误。正如问题中提到的,我尝试了输入的名称,但尽管它没有引起错误,结果却是空的。对不起,我的无知。。。