gpt4 book ai didi

python - 使用 Google App Engine 请求类获取上传的文件名

转载 作者:太空宇宙 更新时间:2023-11-04 06:08:48 25 4
gpt4 key购买 nike

我有一个允许文件上传的 HTML 表单。我需要通过电子邮件发送上传的文件。我正在关注 Google appengine 请求类 example .

    from google.appengine.ext import webapp
from google.appengine.api import mail

class MyRequestHandler(webapp.RequestHandler):
def get(self):
self.response.out.write('''
<html>
<body>
<form method="post">
<p>File: <input type="file" name="upload" /></p>
<p><input type="submit" /></p>
</form>
</body>
</html>
''')

def post(self):
uploaded_file = self.request.get("upload")
uploaded_name = "file.doc"
message = mail.EmailMessage(sender="Me <me@mydomain.com>",
subject="Email from me")
message.to = "Me <me@mydomain.com>"
message.body = "See attached file."
message.attachments = [(uploaded_name, uploaded_file)]
message.send()

上面的代码有效。我需要将 message.attachments 元组中的硬编码文件名 (file.doc) 替换为上传文件的实际名称。我有两个问题:

  1. 如何从 webapp Request 类获取上传的文件名?
  2. 我在哪里可以找到描述如何执行此操作的文档?我进行了大量搜索,但找不到引用资料或示例。

更新:看起来解决方案是:

 if uploaded_file != "":
uploaded_name = self.request.params["upload"].filename

...已发布 here .

最佳答案

不要使用 self.request.get("upload"),而是尝试检查 self.request.POST["upload"] 字典。

具体来说,self.request.POST['upload'] 将返回一个 cgi.FieldStorage 实例。您要查找的属性是 filename。同样感兴趣的是 mimetype - 当然还有 data

有关处理上传的完整操作方法,请查看 this ancient post在 Nick Johnson 的博客上。

要深入了解 webapp2 请求数据的工作原理,请参阅 this portion webapp2 文档。

关于python - 使用 Google App Engine 请求类获取上传的文件名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20088154/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com