【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上のどちらも動作確認済みです。