如何在POST中提取上传的文件名?

时间:2015-12-25 05:57:43

标签: python google-app-engine

我的表格是:

<form name="mail-me" action="/mail-me.py" method="POST"  enctype="multipart/form-data">
<input id='file' type='file' name='file' />

我在python中这样做(我使用的是本机google python dev_appserver webapp2.RequestHandler绑定):

fileH = self.request.POST["file"]
print(fileH.name)
print(fileH.type)

我得到:

file
application/octet-stream

我上传的文件是:wodim.conf所以我应该使用wodim.conf而不是file。我做错了什么 - 我如何解决这个问题,因为我得到了:

Error: Server Error
The server encountered an error and could not complete your request.

Please try again in 30 seconds.

2 个答案:

答案 0 :(得分:0)

request.FILES['filename'].name

来自request文档。

您可以遍历文件:

for filename, file in request.FILES.iteritems():
    name = request.FILES[filename].name

答案 1 :(得分:0)

想出来,做了一个:print(dir(fileH)) - 这给了我一个支持的属性列表,filename是我应该使用的,而不是'文件'。所以,print(fileH.filename)有效。我收到服务器错误,因为google-app-server只允许固定的扩展列表(上传时不允许.exe)。如果你这样做:fname = fileH.file'file'被返回,这将导致问题,因为它没有扩展名(因此错误信息)。