私は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;
},
});
両方の部分をさまざまな方法で変更しようとしました.応答を取得できますが、ダウンロードに移動できません.メインページに同じコードを使用すると機能します.何が欠けていますか?
最後にそれを手に入れました....私はこのページの例をここで のみ使用します。応答としてURLを送り返し、「onsuccess」ハンドラーでwindow.openを使用してそれを開きました。
ブロブストアの問題は、ファイルがサーバーに保存され、他の人がそれらを表示できることです。そのため、私の最善の解決策は、グローバル変数を使用して投稿からデータを保存し、それを get に渡して javascript から get を呼び出すことです。 window.open() を使用します。