前提・実現したいこと
配列の中味を、ブラウザから、CSVファイルとしてダウンロードさせたい。
Content-Type: application/force-downloadによって
CSVファイルをサーバに生成せずに、CSVファイルのダウンロードを行っています。
稼働していたPHPに突然エラー(PHP自体のエラーではありません)が発生しダウンロードができなくなりました。
検証したところ、配列の中の文字列によってエラーが起こるところまでわかりました。
発生している問題・エラーメッセージ
失敗 ネットワークエラー(ブラウザからのエラーメッセージ)
該当のソースコード
PHP
1$down_file ="sample.csv"; 2unset($buf); 3$buf[] ="あああ"; 4$buf[] ="あああ"; 5$buf[] ="あああ"; 6$buf[] ="あああ"; 7$buf[] ="あああ"; 8$buf[] ="あああ"; 9$csv[] = implode(',', $buf) ."\r\n"; 10unset($buf); 11$buf[] =1; 12$buf[] =1; 13$buf[] =1; 14$buf[] =1; 15$buf[] =1; 16$buf[] =1; 17$csv[] = implode(',', $buf) ."\r\n"; 18 19header ("Content-Type: application/force-download"); 20header ("Content-Disposition: attachment; filename=" . $down_file); 21header ("Content-Description: File Transfer"); 22header ("Content-Length: " . strlen(join("",$csv)) ); 23 24foreach ($csv as $mval) { 25echo mb_convert_encoding($mval,'SJIS-win'); 26 flush(); 27 ob_flush(); 28 usleep(10000); 29}
試したこと
元々、全角を含む配列から問題なくCSVのダウンロードできていたのですが、
今回、ソースコードの"あああ"の部分を削除し、数字のみの配列にするとダウンロードは問題なく行われました。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/04/14 06:19 編集
退会済みユーザー
2018/04/14 06:24
退会済みユーザー
2018/04/14 06:26
退会済みユーザー
2018/04/14 06:28 編集
退会済みユーザー
2018/04/14 06:28
2018/04/14 06:34 編集
退会済みユーザー
2018/04/14 06:41
2018/04/14 06:50
退会済みユーザー
2018/04/14 06:52