- ベストアンサー
Web上のデータをネスケでダウンロードさせたいのですが上手くいきません。
Webデータ作成初心者なのですが、教えて下さい。 HTMLで<A HREF="×××.xls">ここからダウンロード</A> というような記述を含むファイルを作成し、「×××.xls」ファイルと一緒にWeb上にアップしました。 ローカル上で動作確認した際は、「ここからダウンロード」をクリックすると、ファイルを開くか、ディスクに保存するかを確認するダイアログボックスが表示され、開く事もファイルに保存する事も出来たのですが、Web上にアップしたデータをネスケから確認すると、ダイアログボックスも開かず、ただ1~2行の文字化けしたテキストが表示されるページに飛んでしまいます。IEから確認すると、ブラウザ上からExcelが開いて、ブラウザのメニューバー等はそのままで、ブラウザ画面内に「×××.xls」のファイルが開かれます。 転送に使用しているソフトはFFFTPです。エクセルファイルをアップする際に、アスキーで送ったりバイナリで送ったりと試したのですが、どちらもだめでした。 考えられる原因、回避策など教えて下さい。よろしくお願いしますm(__)m
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
通常、一般的に使用されている Apache 等の web サーバは、拡張子 xls に対して、 Content-Type: application/vnd.ms-excel という "HTTP ヘッダ" という類の応答メッセージを、閲覧要求 (リンク) に対して、該当ファイルをブラウザに送る前に送信しています。 この、Content-Type ヘッダというのは、MIME Types と一般的に言われ、ブラウザに対して、「このファイルはこういう中身のものでっせ」と伝えているというものです。その応答に対して、ブラウザ側でその Content-Type に該当するファイルをブラウザで開くときの振る舞い (ダウンロードさせるのか、外部プログラムで開くのか、ブラウザ上に開くのか) や、開くアプリケーション等の選択などの処理を振り分けています。 Netscape のバージョンが書かれていないので何とも言えないのですが、基本的に Netscape 系のブラウザは、これらの Content-Type ヘッダ (MIME Types) に応じて行う振る舞いが設定できます。 一般公開する場合に「MIME の設定をしてくれ」とは普通言わないので、これらのファイルをダウンロードさせるためには、共通して Content-Type: application/octet-stream というヘッダを出力させないといけません。 仮にその web サーバが Apache 等のサーバアプリケーションを使用していれば、.htaccess 等の名前 (とは限らないが) で xls の場合に応答する Content-Type を指定できる "可能性" があります。 まず、そのサーバの管理者 (管理会社) に「.htaccess (ドットエイチティーアクセス) の設置が出来るか、また出来る場合は FileInfo (ファイルインフォ) の属性変更は適用されるか」をお尋ね下さい。 FileInfo の変更権限がなければ、これらは意味がなくなります。 もしこれらが OK である場合には、.htaccess というファイルを、xls ファイルのあるディレクトリ (または、その上位ディレクトリ) に置かないといけません。 (ドットから始まる、拡張子のみのファイルになるので、Windows 環境では普通作れません。なので、_htaccess 等のファイル名にして、サーバにアップ後、サーバ上のファイル名を変更してください) .htaccess には AddType application/octet-stream xls という一行だけ書いてください。 そうすれば、Netscape でダウンロードするときにダウンロードダイアログが表示されるはずです。 ちなみに、Internet Explorer は、Content-Type ヘッダを無視して、ブラウザ側で独自にファイル内容を解析して、適宜特定のアプリケーションで開いてしまうという "腐った実装" がなされているため、これらを行っても、Excel が開いてしまいます。 .htaccess が設置できない場合、または、.htaccess が OK でも、IE でダウンロードさせたい場合は「諦めてください」としかいいようがありません。 圧縮するなりして、「ダウンロードさせる」為の拡張子 (必ず "ダウンロード" になる拡張子) を付加させないと、実現は不可能です。
その他の回答 (2)
- timber
- ベストアンサー率29% (218/739)
ネットスケープではテキストファイルと判断されるため。 IEではIE自体でエクセルのファイルが閲覧できるためでしょう。 対処方法は2種類です。 1.エクセルファイルをzip、lzhなどで圧縮してアップする。 2.右クリックからDLしてもらうように記述する。 (どちらのブラウザでも右クリックすれば保存するためのメニューが選択できます。)
お礼
右クリックからファイルを保存出来る事は今まで気付きませんでした。今後.htaccessの設定を変更出来ない場合などに活用させて頂きます!!有難うございました。
- so_blue
- ベストアンサー率48% (50/104)
環境にもよりますが、.htaccessでMIMEタイプを設定できます。 自分はちょっと詳しくないので、検索結果を参考にいれておきます。 ちなみにIEは、拡張子を優先してMIMEタイプを無視する傾向にあるので、 設定されていなくても(不明なファイルであっても)開くことができるのです。
お礼
お教え頂いた通り、.htaccessの設定で無事Excelファイルをダウンロード出来るようになりました。有難うございました。
お礼
詳しい説明有難うございます。初心者にも大変分かりやすかったですm(__)mおかげで原因がわかり、無事Excelデータをダウンロード出来るようになりました。有難うございました!!