- ベストアンサー
Excelファイルのダウンロードと表示に関する問題
- サーバーに配置してあるExcelファイルをダウンロードすると、ファイルを開こうとする際にエラーメッセージが表示されます。表示されるポップアップには、「ファイルの形式が異なるため確認が必要」という内容が書かれています。また、実際にファイルを開くと文字化けが発生します。
- 原因として、ダウンロードしたExcelファイルの形式が破損している可能性が考えられます。
- 対策として、ファイルの形式が正常であることを確認し、信頼できる発行元からのファイルであることを確認してから開く必要があります。また、ダウンロードする際には注意が必要です。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
ここに書かれていない部分で、何か出力しちゃってるんでしょうね。 PHPファイルの先頭1文字目から <?php が書かれていて、最後の ?> は省略していますか? コードの他の部分で何か出力していませんか? PHPを通さず、そのファイルをURLを指定して直接ダウンロードしてみるとどうですか?(一時的にでもURLのある場所に移す)
その他の回答 (2)
- BellBell
- ベストアンサー率54% (327/598)
>>2 なるほど、その可能性が高そうな気がしますね。 すべてのリターンの前に、<html><head>~</head>やらを吐き出すように書いてるとか、<!doctype~>やらかも知れませんね。 末尾に、『ダウンロードが完了しました』なんてメッセージを出力しようとしている可能性も。 CMS使ってたら、このコードに行きつく前にCMSが吐き出してしまっているかも知れませんし、このコードの後かもしれませんね。 もちろん、#2さんのおっしゃる通り、"<?php"の前の空白や改行、"?>"の後の空白や改行なども充分に怪しいですね。 つーか、ファイルに直接ハイパーリンクを設定しておけば、ファイルをダウンロードするダイアログ出ませんでしたっけ? IEだとIE内で開こうとしてしまう、とかそんな事があったかな? xlsを圧縮せずにサーバーに置こうと思った事がないので、その辺がよく判ってないな。
お礼
回答ありがとうございます。 なるほど、zipにするという手がありましたね。 さっそく試してみます。
- BellBell
- ベストアンサー率54% (327/598)
直接関係はないですが、私ならzipかlha(lzh)形式のどちらかで圧縮しますね。 万一途中でバイトコードが化けてしまったら、解凍時点で判明しますからね。 解凍できないというエラーによって。 それと、xlsにはプログラム(VBA)が埋め込めますからね。たぶんないとは思いますが、通信経路上に悪意のあるコードを埋め込むようなウィルスが感染しているなんて事が、あり得ないとも言い切れない。 拡張子xlsのままだと、契約プロバイダやらプロキシ、ウィルスバスターなんかが安全の為にダウンロードを停止させないとも限らない(ウチの会社のプロキシは実際にブロックしますしね)。 もし、そのままxlsでなくてもいいのなら、解凍の際にバイトコードが化けていないと判断できるように、圧縮してみては?
お礼
回答ありがとうございます。 直接、aタグのリンクに指定してやると問題なくダウンロードされました。 他の部分で出力がないか確認してみます。