使用Python获取上传文件的名称和扩展名(谷歌应用引擎)

4 投票
2 回答
5332 浏览
提问于 2025-04-15 13:10

我正在使用一个表单来上传文件到谷歌应用引擎,并把它们存储在数据存储中。我还想保存原始文件名和扩展名,以便展示使用。

有没有办法从服务器端获取这些数据,还是只能在客户端收集这些信息,然后作为单独的字段发送呢?(比如这个链接:http://www.tinyurl.com/5jybfq

非常感谢。

对于那些根据下面的答案跟进解决方案的人:

this_file = self.request.params["file_upload_form_field_name"].filename 

(this_file_name, this_file_extension) = os.path.splitext(this_file) 

self.response.out.write("File name: " + this_file_name + "<br>") 

self.response.out.write("File extension: " + this_file_extension + "<br>") 

2 个回答

0

试试这个...

如果你的表单看起来像这样:

self.response.out.write('''<form action="/upload" enctype="multipart/form-data" method="post"><input type="file" name="file"/><input type="submit" /></form>''')

那么在处理提交的部分,你可以这样做:

class UploadHandler(webapp.RequestHandler):     
    def post(self):
        obj = MyModel()
        obj.filename = self.request.get("file")
        obj.blob = self.request.get("contents")
        obj.put()
        self.redirect('/')

文件名保存在“file”这个参数里。实际的文件内容则在“contents”这个参数里。

3

这个来自这封邮件的代码片段能用吗?

 self.request.params[<form element name with file>].filename

撰写回答