[PHP-users 31200] Re: IEでリダイレクト先の画像がBMPでしか保存できない

banban @ landhere.info banban @ landhere.info
2007年 1月 4日 (木) 12:48:48 JST


小暮さん、アドバイスありがとうございます。

>header("Content-Length: ".filesize($filename));

こちらの環境では、これを行ってもbmpでしか保存できないようです。
そればかりか、保存しようとすると以下のようなエラーが出ました。
「エラー 800700de のため操作を完了できませんでした。」
(再起動後は、同じ処理で出なかったので、たまたまかも知れません)

Windows XP Pro sp2
IE 7.0.5730.11

参考までに、IEのツールは動きませんが、Firefoxでヘッダを除くと
以下のようになります。リダイレクト先のヘッダではContent-Length,
Content-Type共に戻されているので、何の問題もないように思います。

ブラウザによって戻ってくるHTTPヘッダが違う訳はないだろうし、
これはIEのバグなんでしょうかね?

<リダイレクト前のPHP>
HTTP/1.x 302 Found
Date: Thu, 04 Jan 2007 03:28:42 GMT
Server: Apache/2.2.2 (Fedora)
X-Powered-By: PHP/5.1.2
Location: /path/to/image.jpg
Content-Length: 0
Connection: close
Content-Type: text/html; charset=UTF-8
X-Pad: avoid browser bug

<リダイレクト後のJPEG画像>
HTTP/1.x 200 OK
Date: Thu, 04 Jan 2007 03:28:43 GMT
Server: Apache/2.2.2 (Fedora)
Last-Modified: Sat, 23 Dec 2006 06:08:34 GMT
Etag: "b18274-11724-64f83c80"
Accept-Ranges: bytes
Content-Length: 71460
Connection: close
Content-Type: image/jpeg

ちなみに、PHPでリダイレクト先のファイルを読み込んで、出力する
場合は、適切な Content-Type を出力してあげることで、jpegなどで
保存できるようです。

-- 
 van


PHP-users メーリングリストの案内