読者です 読者をやめる 読者になる 読者になる

【GAE/Python】ファイルをブラウザにダウンロードさせたい

fileName = "test.jpg"

print "Content-Type:application/octet-stream;\r\nContent-Disposition: attachment; filename=" + fileName + "\r\n"

f = urllib.urlopen("http://xxx.jpg")

data = f.read();

print data

f.close()

とすることで、ブラウザにDLさせることが出来ました。

f = urllib.urlopen("http://xxx.jpg")

の部分を、

f = open('./local.jpg' , "r")

という形に変えれば、ローカルの物でも大丈夫です。

また、取得先のサーバの状態によって違うかも知れないのですが、

getの変数によってhtmlの内容が可変するような場合、

result = urlfetch.fetch(path)

if result.status_code == 200:

//成功

print result.content

else:

//失敗

というように、

urlfetch.fetchを使わないと成功しませんでした。

(具体的には、変数が渡っていないかのようなhtmlになってしまっていました。

ただ、それも渡っている場所と渡っていない場所があり、最終的な原因はわからなかったのですが・・)

※appengineでローカル、WEB上のどちらも動作確認済みです。