プロが教えるわが家の防犯対策術!

とあるサイトを参考にして、
excelファイルをダウンロードできるようにしたいと思い記述しましたが、
エラーが出て困っています。

どのように修正すればよいか、アドバイスいただけないでしょうか?
php初心者のため、初歩的な質問かもしれませんこと、お許しください。
windows7を利用しています。

■表示されたエラーの内容
Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\phpkiso\download.php:9) in C:\xampp\htdocs\phpkiso\download.php on line 15

Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\phpkiso\download.php:9) in C:\xampp\htdocs\phpkiso\download.php on line 17

Warning: readfile(依頼書ダミー.xls) [function.readfile]: failed to open stream: No such file or directory in C:\xampp\htdocs\phpkiso\download.php on line 19


■プログラム
<?php
// ダウンロードさせるファイル名
$tmp_file = "依頼書ダミー.xls";
$j_file = "依頼書.xls";
$j_file = mb_convert_encoding($j_file, "SJIS", "EUC");
// ヘッダ
header("Content-Type: application/octet-stream");
// ダイアログボックスに表示するファイル名
header("Content-Disposition: attachment; filename=$j_file");
// 対象ファイルを出力する。
readfile($tmp_file);
exit;
?>

A 回答 (2件)

<?php ~ ?>の前に何か出力していませんか?


1文字でも出力してしまった後はheader関数は使えません。

http://php.net/manual/ja/function.header.php

この回答への補足

すみません。<?php ~ ?>の前の記述を載せさせていただきました。
どこを修正すればよいか、おしえていただけないでしょうか。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>依頼書ダウンロード</title>
</head>
<body>
<?php


$tmp_file = "依頼書ダミー.xls";
$j_file = "依頼書.xls";
$j_file = mb_convert_encoding($j_file, "SJIS", "EUC");
// ヘッダ
header("Content-Type: application/octet-stream");
// ダイアログボックスに表示するファイル名
header("Content-Disposition: attachment; filename=$j_file");
// 対象ファイルを出力する。
readfile($tmp_file);
exit;
?>
</body>
</html>

補足日時:2014/02/05 19:18
    • good
    • 0

<?php ~ ?>の前に何か書いた時点でheader関数は使えなくなります。



download.phpはファイルダウンロードのためのPHPですよね?
<?php ~ ?>以外の部分は不要です。
    • good
    • 0
この回答へのお礼

なるほど、そういうことだったのですね。
大変勉強になりました。
ありがとうございました。

お礼日時:2014/02/05 22:08

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