Ichigo
Ichigo

Reputation: 139

HTML source download instead of CSV file

I have below source code (PHP) use to download CSV file

$file_name = date("YmdHis") . ".csv";


Header('Content-Type: text/csv');
Header("Content-disposition: attachment; filename=${file_name }");
Header("Content-type: application/octet-stream; name=${file_name }");

header('Pragma: 1');
header('Cache-control: private, max-age=60, pre-check=30');
session_cache_limiter('private_no_expire');  

$csv = $header.$contents;

if (mb_detect_encoding($csv) == 'SJIS-win') {
    $csv = mb_convert_encoding($csv, 'UTF-8', 'SJIS-win');
}
echo $csv;

exit;

With $header and $contents is read from database. This source work fine with Firefox, IE but i got problem with Quihoo360 (an browser of China called : 360安全浏览器). Instead of downloading CSV file with the content read from database, it download csv with the content is the HTML source of the displaying page.

Can someone let me know how to solve this problem.

Thank you very much.

Upvotes: 0

Views: 2721

Answers (2)

Fluffeh
Fluffeh

Reputation: 33512

Instead of your content type, try setting it to :

Content-Type: text/plain

See a good list of content types.

Edit: Try this in you PHP:

header('Content-Type: application/csv');
header('Content-Disposition: attachment; filename=example.csv');
header('Pragma: no-cache');
// echo out the csv file

Upvotes: 2

A Person
A Person

Reputation: 1350

Use a content-type of application/force-download to force browsers to download your file. I think that is what you're asking for, right?

Upvotes: 0

Related Questions