gpt4 book ai didi

google-app-engine - appengine 将数据作为文件下载发送

转载 作者:行者123 更新时间:2023-12-04 18:21:51 24 4
gpt4 key购买 nike

我是python和appengine的新手。所以我有这个简单的问题。我想发送服务器数据并让服务器将其作为文件下载发送回来。如果我在页面加载之前下载文件,我可以下载文件.但在那之后我无法下载。这是我现在拥有的:

class UploadHandler(webapp.RequestHandler):

def get(self):
try:
xml=parseString(self.request.body)
result=sanitize(xml)
if result == None:
text=xml.toxml('UTF-8')
name="file.xml"
self.response.out.write(text)
self.response.headers.add_header('Method','get')
self.response.headers.add_header('Content-Type','text/xml')
self.response.headers.add_header('name',name)
self.response.headers.add_header('Content-Disposition','attachment')
self.response.headers.add_header('filename',name)
self.response.headers.add_header('Content',text)
except:
print self.request.body

这是调用它的javascript:
        var text=getMarkup();
new Ajax.Request("http://localhost:8080/file",{
method:'get',
contentType:"text",
postBody:text,
onSuccess:function(){
console.log(transport.responseText);
},
onFailure: function(){
console.log('Could not load file...');
},
onException: function(req,exception) {
console.log(exception);
return true;
},
});

我已经尝试以多种不同的方式更改这两个部分。我可以得到响应,但我无法让它去下载。如果我对主页使用相同的代码,它仍然可以工作。我错过了什么?

终于明白了……
我使用此页面上的示例 here
只有我将 url 作为响应发回,并在“onsuccess”处理程序中使用 window.open 来打开它。

blobstore 的问题是文件保存在服务器上,其他人可以查看它们,所以我最好的解决方案是使用全局变量来保存帖子中的数据,然后将其传递给 get 并从 javascript 调用 get使用 window.open()。

最佳答案

我认为这会有所帮助

import mimetypes
......

(content_type, _) = mimetypes.guess_type(name)
self.response.headers['Content-Type'] = content_type
self.response.headers['Content-Disposition'] = 'attachment; filename=' + name
self.response.out.write(text)

顺便一提。您还可以使用 blobstore 保存文件并下载 blob 文件。

关于google-app-engine - appengine 将数据作为文件下载发送,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10490106/

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