Mark
Mark

Reputation: 314

Download Excel From Server Using PHP

Can anyone help me to write code on PHP to download Excel File from the server.

I have created below codes using header and readfile but the downloaded file was corrupted.

//content type
header('Content-type: application/vnd.ms-excel');
//open/save dialog box
header('Content-Disposition: attachment; filename='.$fileName);
//read from server and write to buffer
readfile($reportPath);

Can anyone help me on the best way to download existing Excel file from the server.

Please see below image of data after downloadedenter image description here

Upvotes: 1

Views: 8456

Answers (3)

Mark
Mark

Reputation: 314

ob_clean();

put that code before all header declaration

Upvotes: 2

periklis
periklis

Reputation: 10192

I use something like the following:

header("Content-Description: File Transfer");
header("Content-Type: application/octet-stream");
header('Content-Disposition: attachment; filename="'.basename($path).'"');
header("Content-Transfer-Encoding: binary");
header('Expires: 0');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Pragma: public');
header("Content-Type: application/force-download");
header("Content-Type: application/download");
header("Content-Length: ".filesize($path));
readfile($path);
exit;

Make sure you're not outputting anything before or after the readfile.

Upvotes: 0

Fracsi
Fracsi

Reputation: 2314

I suggest to use the X-SENDFILE header. https://tn123.org/mod_xsendfile/

Upvotes: 0

Related Questions