- - PR -
php からのファイルダウンロード
1
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2005-12-25 22:45
現在、Apache1.3.33 + php4.3.8 で試験中のファイルのダウンロードを行うコードが期待通りに動かなくて困っております。
行おうとしていたことは、csv などをダウンロードするのに、下記のようなものを考えていました。 1.ダウンロードボタンを押す 2.IE の「保存」、「開く」というダイアログが表示される。 3.「保存」を選んだら、ファイルが保存される。 4.「開く」を選んだら、とりあえずファイルを見れる。 ここで、3まではうまくいくのですが、4の「開く」を選択したときに開かれるファイルが、txt, csv, pdf のどれをやっても空ファイルしか開かれないようでした。 試しに次のコードでやってみたのですが、やはり、「開く」を選択すると文字が表示されません。私のやっていることが間違っているのか、そもそもできないことをやろうとしているのか、どなたか教えていただければと思います。 header("Content-type: text/plain"); header("Content-Disposition: attachment; filename=a.txt"); print "Hello"; よろしくお願いいたします。 | ||||||||
|
投稿日時: 2005-12-25 23:04
「開く」で画面が真っ白になったとき、その画面のソースを確認しましたか? たぶん、漢字コードの認識に失敗しているだけじゃないかと思います。 Content-Type に「;charset=Shift_JIS」のように漢字コード指定をしましょう。 ちなみに、次のようにファイル名を2回指定したほうが安全です。
「filename=...」と「name=...」に同じファイル名を指定するのは、 いろいろなブラウザに対応するための安全策。 あと、状況によっては「Content-Length: 」を指定してあげないと 正しくダウンロードできないこともあります。どうしてもうまくいかない 場合は、試してみてください。 [ メッセージ編集済み 編集者: 流れプログラマ 編集日時 2005-12-25 23:05 ] | ||||||||
|
投稿日時: 2005-12-26 05:33
流れプログラマ殿
おかげさまで、うまくいきました。 どうやら、切り分けの段階で一番無難と思っていた text ファイルで試験をしたのがよくなかったようです。 csv などでは、無事動くようになりました。 ありがとうございました。 |
1