forms - 在 python 中使用 Google App Engine,上传文件和表单数据

  显示原文与译文双语对照的内容
0 0

我有一个简单的网络应用程序,用户可以提交一个表单,并且包含一个文件,如果他们想要的话。 我看过很多教程如何上传文件到gaeblobstore,他们看起来简单,像上传文件 Google App Engine

但是,如何上传标准表单数据? 我有很多文本框,我希望用户能够提交附件以及输入的文本数据。 我只能找到上传文件的例子。

以下是我的HTML表单:


<form action="http://xxx.appspot.com" target="myiframe" method="post" id="myForm" name="myForm">Contact Name<br/>
<input type="text" required="" name="cname"/><br/>
Name of Institution<br/>
<input type="text" required="" name="iname"/><br/>
E-Mail<br/>
<input type="email" required="" name="email"/><br/>
Phone<br/>
<input type="tel" required="" name="phone"/><br/>
If you have a supporting file that will clarify your help request you can add it here (optional)<br/>
<input type="file" name="upfile" MAXLENGTH=50 ALLOW="text/html/text/plain"/><br/>
Description of problem/issue<br/>
<textarea required="" name="desc" rows="3" cols="30">
</textarea>
<br/>
<input type="submit" value="Submit"/>
<div id="result"></div>
</form>
<iframe name="myiframe" style="visibility:hidden;display:none" src="http://xxx.appspot.com" id="myiframe"></iframe>

下面是我的服务器端 python 代码。 我正在尝试让用户上传一个文件,然后发送一个电子邮件,其中包括附加的文件和用户输入的数据:


import cgi, cgitb
from google.appengine.api import mail

class MainPage(webapp2.RequestHandler):

 def get(self):
 self.response.headers['Content-Type'] = 'text/plain'
 self.response.write('Hello, webapp2 World!')

 def post(self):

 contact=self.request.POST["cname"]
 institute=self.request.POST["iname"]
 email=self.request.POST["email"]
 phone=self.request.POST["phone"]
 desc=self.request.POST["desc"]
 filename=self.request.POST["upfile"]
 user_address ="xxx@xxx.net"

 sender_address ="xxx@gmail.com"
 subject ="Test email"

 body ="Contact Name:"+contact+"n"+"Name of Institution:"+institute+"n"+"E-mail:"+email+"n"+"Phone:"+phone+"n"+"Description:"+desc#+"n"+"Filename:"+filename
 mail.send_mail(sender_address, user_address, subject, body)

application = webapp2.WSGIApplication([('/', MainPage)], debug=True)

时间: 原作者:

0 0

请不要忘记窗体中的enctype:


enctype="multipart/form-data"

原作者:
...