我试图通过对控制器发出的后端调用来渲染一个特殊文件(确切地说是.pkpass)。我想我的这一部分是正确的,我只想让我的控制器为我提供一个特定的文件,这里是代码
MyResource
问题不在于提供文件;通过XMLHttpRequest下载文件后,它无法打开。我的第一个想法是关于一个损坏的二进制文件,所以我打开原始文件(名为good.pkpass,它工作)到我的编辑器中,并尝试与我从我的应用程序(名为test.pkpass)提供的文件进行比较
问题是它们看起来几乎一样(虽然是它的二进制),但我发现它们之间的差异很小(尽管它们很微妙,二进制它意味着完全不同的东西)
我已经附上了2张截图,你可以看到我的光标从左到右缺少@view_config(name='pkpass', request_method='GET')
def post_mobile(request):
print('hitting')
pkppass = open('/Users/jamthor/Downloads/good.pkpass','rb')
pkread = pkppass.read()
try :
res = Response(body=pkread, content_type = 'file/vnd.apple.pkpass;base64')
res.content_disposition = 'attachment; filename="test.pkpass"'
except Exception as e :
print(e)
finally:
pkppass.close()
return res
个字符(从而证明确实存在差异)
我的问题是:为什么同一个文件给我不同的二进制文件?因此,为什么原始文件可以打开,而另一个不会?