プロが教える店舗&オフィスのセキュリティ対策術

以前の質問にもあったと思いますが
『No.257537 質問:エクセルをダウンロードさせるには・・・?』など

エクセルをUPしそのURLをリンクすると、画面(フレーム内)にエクセルが表示されてしまします。
表示ではなく、ファイルを保存したいのです。
また、wordも同様にファイルとして保存したい。

.htaccssは下記のようになっています。
directoryindex index.cgi index.html
Options FollowSymlinks ExecCGI includes
addtype appication/x-httpd-cgi .cgi
addtype appication/x-httpd-cgi .pl
addtype text/x-server-parsed-html .html
addtype text/x-server-parsed-html .htm
addtype text/x-server-parsed-html .shtml
AddType application/vnd.ms-excel xls xlt (1)
addtype application/octet-stream .xls (2)

(1)と(2)の両方を入れ替えてやってみているのですが
フレーム内に表示され、ダウンロードにならないのです。

どうか、ご教授ください。

A 回答 (2件)

手っ取り早く圧縮してしまうのでは


ダメでしょうか?(^^;

もしくはCGIを通してダウンロードさせる方法があります。Perlなら以下のような感じです。

#!perl

$file = "xxx.xls";

print qq|Content-Disposition: attachment; filename="$file"\n|;
print qq|Content-Type: application/octet-stream\n\n|;

open(DAT, $file);
while(<DAT>){
print;
}
close(DAT);
    • good
    • 0
この回答へのお礼

遅くなりすみません。パソコンの調子が悪く再インストしてました。
ターゲットを変えてやってみてダメなときはこの方法を試してみます(これならうまくいくと思います)。
ありがとうございました。

お礼日時:2003/12/10 22:35

当然クライアント側はIEかと思いますが、


IEはダウンロードファイルの拡張子で勝手に処理を決めていたように思います。
(サーバーからのcontent-typeは無視しているような?)

単なるリンク(<a href=xxx></a>)でしたら、右クリックで表示されるメニューに
「対象をファイルに保存」があるので(私のIE5の場合)、これを選択すると
ファイル保存ダイアログが表示されます。

あと、windowsの拡張子毎の設定で、「ダウンロード後に開く確認をする」の
指定をoffにしておけば、保存するか、開くかを聞いてくるようになるはずです。
(エクスプローラー→フォルダオプション→ファイルタイプ→XLSやDOCを選択)
この辺、XPはちょっと違っているかも

フレーム内に表示されるのさえ無ければいい!のであれば、
リンクやフォームにtager=_blankを追加すればいいかも
(別ウィンドウで表示させてやる)
    • good
    • 0
この回答へのお礼

遅くなりすみません。パソコンの調子が悪く再インストしてました。
ターゲットを変えてやってみます。
ありがとうございました。

お礼日時:2003/12/10 22:34

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!