Python Google AppEngine、Django和request.FILES

Python Google AppEngine、Django和request.FILES,python,html,django,google-app-engine,Python,Html,Django,Google App Engine,情况:一个html表单(正确设置了method=“POST”和enctype=“multipart/form data”属性)被提交到服务器,即Google AppEngine上的Django。它包含一个文件输入,该文件输入被移动(而不是克隆)到所述表单中,并通过iframe提交。对于小文件(~1mb或更少),提交的文件将在request.files字典中找到,并存储在blob中。但是,对于1mb以上的文件,查找request.files会返回一个错误,声称在给定的dict中找不到密钥(即文件输

情况:一个html表单(正确设置了method=“POST”和enctype=“multipart/form data”属性)被提交到服务器,即Google AppEngine上的Django。它包含一个文件输入,该文件输入被移动(而不是克隆)到所述表单中,并通过iframe提交。对于小文件(~1mb或更少),提交的文件将在request.files字典中找到,并存储在blob中。但是,对于1mb以上的文件,查找request.files会返回一个错误,声称在给定的dict中找不到密钥(即文件输入元素的名称),并且事实上request.files(和request.POST)dict是空的

问题:这是由于AppEngine限制造成的(如果是,是否有解决办法?)这是否与Django有某种关系(请注意,enctype和方法设置正确)?是否缺少其他元素

其他信息:请注意,我是一名javascript程序员,负责填补一名缺席的Python程序员的空缺,只知道基本知识。请相应地调整你的答案

相关Python:

def media_image_upload(request):
   if request.method == 'POST':
      img = request.FILES['img']
<form id="hiddenUpForm" style="display:none;" action="http://localhost:8080/media/imageUpload" enctype="multipart/form-data" target="upTarget" method="POST">
  <input name="img" id="img" type="file" accept="image/*">
  <iframe id="upTarget" name="upTarget" src="" style="width:0;height:0;border:0px solid #fff;"></iframe>
</form>
相关html:

def media_image_upload(request):
   if request.method == 'POST':
      img = request.FILES['img']
<form id="hiddenUpForm" style="display:none;" action="http://localhost:8080/media/imageUpload" enctype="multipart/form-data" target="upTarget" method="POST">
  <input name="img" id="img" type="file" accept="image/*">
  <iframe id="upTarget" name="upTarget" src="" style="width:0;height:0;border:0px solid #fff;"></iframe>
</form>


我认为为了上传大于1MB的文件,您需要使用Blobstore API创建一个用于上传的特殊URL;它不可能是您的常规内存,我相信我们已经在为此目的使用blobstore,创建一个模型
类映像(models.model):
,它具有一个属性
data=BlobField()
。此外,从中提交表单的html页面是静态的——是否需要模板来实现此功能?或者我可以从静态页面创建和访问这个特殊的url吗?同样,作为数据存储的一部分的Blob数据类型与Blobstore非常不同。在数据存储中,Blob是1Mb大小的二进制数据块。Blobstore允许您克服1MB的限制,但是您必须使用它的机制,正如我在回答中所描述的那样。是的,生成包含由
create\u upload\u URL
调用生成的URL的页面需要模板。啊,感谢您的解释。我会进一步调查的。