[PHP-users 21904]Re: データベース上のExcelをダウンロード
Y.Watanabe
yuw @ msj.biglobe.ne.jp
2004年 5月 31日 (月) 16:59:05 JST
渡辺です。
"Kuma" wrote on 2004/05/31 16:28
with Subject: [PHP-users 21903] Re: データベース上のExcelをダウンロード
>> というか、よく見てみると、
>>
>> >header("Content-Transfer-Encoding: base64");
>>
>> この行って必要ないような気がしないでもない・・・。
>> コメントアウトしてみては?
>
>以下の内容で書き直しました.
><?php
>$con = mssql_connect("db_server","sa","hogehoge");
>mssql_select_db("db_name",$con);
>$str = "select * ";
>$str = $str . "from hoge ";
>$str = $str . "where obj_id = 12345";
>$rs = mssql_query($str);
>header("Content-type: application/vnd.ms-excel");
>header("Content-Disposition: attachment;filename=test.xls");
>
>echo mssql_result($rs,0,"excel_obj")
>?>
>
>エラーメッセージは,
>「test[1].xls ファイル形式が正しくありません」と出ます.
>
>やはり,エンコード関連の問題でしょうか.
>今,「バイナリ,base64」等をキーにして,Googleで調べています.
# base64である必要性がよくわからない・・・。
んじゃこれでは?
header("Content-Type: application/ms-excel");
header("Content-Disposition: attachment; filename=test.xls");
header("Content-Transfer-Encoding: binary");
あと、
>echo mssql_result($rs,0,"excel_obj")
の直後にexit();でも入れて万が一余計なモノが
後から出て行かないようにしてみるとか。
それ以前に、
$fp = fopen("/tmp/hoge.xls","wb");
fwrite($fp,mssql_result($rs,0,"excel_obj"));
fclose($fp);
とかしてみてサーバー上にファイルとして保存し、
そのファイルが本当にまともにExcelで開けるかどうか確認するべきでは?
PHP-users メーリングリストの案内