こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

ファイルのダウンロードがうまくいきません

以前の質問にもあったと思いますが
『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)の両方を入れ替えてやってみているのですが
フレーム内に表示され、ダウンロードにならないのです。

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

投稿日時 - 2003-11-23 12:09:43

QNo.712866

すぐに回答ほしいです

質問者が選んだベストアンサー

手っ取り早く圧縮してしまうのでは
ダメでしょうか?(^^;

もしくは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);

投稿日時 - 2003-11-24 01:33:20

お礼

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

投稿日時 - 2003-12-10 22:35:51

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.2

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

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

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

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

投稿日時 - 2003-11-25 23:25:46

お礼

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

投稿日時 - 2003-12-10 22:34:17

あなたにオススメの質問