Location ヘッダーで飛ばした先の画像について

[上に] [前に] [次に]
きゅんべる 2000/05/16(火) 02:23:58
 画像の置き場所を仮想化したいと思い、CGIスクリプトの
Location: ヘッダーで飛ばしてやることを考えました。

 しかし、
print "Location: http://www.hoge.com/hoge/pic1.jpg\n";
print "\n";

だと、IEで「画像を保存」したときに、
『無題−−ビットマップ(bmp)』
でしか保存することができず、使い勝手がよくありません。

 通常の画像と同様、
『pic1.jpg−−jpeg画像(jpg)』
と保存出来るようにすることは出来ないのでしょうか?

 ちなみに、ネットスケープではうまくいくみたいです。
(jpeg画像として保存できる)

 よろしくお願いします.

2000/05/16(火) 02:40:15
普通に、
Content-Type: image/jpeg

として、出力すればいいのでは?

きゅんべる 2000/05/16(火) 02:58:34
>普通に、
>Content-Type: image/jpeg

Content-type って、飛んだ先のものには関係しない−−みたいです。

変わりませんでした。

(ソケット通信が使えれば、
 →CGIからターゲットファイルを読みに行って、
 →その内容を自分で吐き出す
 って技が使えるんですけど、、、、
  、、ソケット通信、禁止されてるみたいです。うちのサーバ。)

2000/05/16(火) 03:04:11
>Content-type って、飛んだ先のものには関係しない−−みたいです。
いや、わかってます。
そもそも、Locationヘッダを使用しない解決策を提示したつもりだったのですが。
>ソケット通信が使えれば、
>→CGIからターゲットファイルを読みに行って、
>→その内容を自分で吐き出す
>って技が使えるんですけど、、、、
CGIと画像ファイルが別サーバにあるんですか?
そうでなければ、簡単にできると思うんですけど。別に、ソケット通信する必要もないし。
#仮に別サーバにあっても、同じサーバに置き直せばいいだけの話。  

きゅんべる 2000/05/16(火) 03:24:20
 説明が不十分だったようで申し訳ありません。

> 画像の置き場所を仮想化したいと思い、CGIスクリプトの
>Location: ヘッダーで飛ばしてやることを考えました。

というのは、
★(サーバ容量や所有者の関係で)複数のサーバに分散した画像ファイルを、
 仮想化して、ある決まった参照方法を提供し、
★画像の移動などをあった際にも、参照方法を変えないようにしたい

 と言う意味だったのです。

 という訳で、画像(飛び先)は基本的に、別サーバにあります。

:-) 2000/05/16(火) 19:54:08
保存しようとしたとき BMP になっちゃうのは IE のバグです。たぶん。

関係ないけど、完全に読み込みが終わってないときに保存しようとすると再現できると思います。

きゅんべる 2000/05/22(月) 10:21:09
う〜む、IEのバグ(MSでは仕様って言うんだろうけど)ですか。

これだと、サーバー側ではどうしようもないですね。
結果的に、場違いな質問になってしまって申し訳ありませんでした、皆様。


ちなみに、前に、
>ソケット通信、禁止されてるみたいです。うちのサーバ。
って書いちゃったんですけど、これも間違えでした。
これやろうとしていたサーバーはnifty.comだったんですが、
ソケット、ちゃんと使えました。

実は、ソケットの使い方間違ってた・・・・・
socket(S, 2, 1, 0); じゃなく、
socket(S, 2, 2, 0); が正しかった。ニフティのサーバーでは。

きゅんべる 2000/05/22(月) 12:56:32
[[解決]]
一応解決済みということに、、、

[上に] [前に] [次に]