Go Premium for a chance to win a PS4. Enter to Win

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 2465
  • Last Modified:

Header download of word doc is jumbled

Hello,

I'm trying to send a file to a browser.  The file type is a word doc.  When the word doc downloads, and I try to open it, the text is all jumbled.  This code works fine for pdf's and images by changing the Content-Type accordingly...
if(!is_file($fullpath)) {
  exit('File not found');
}
 
header('Cache-control: private');
header('Pragma: public');
header('Content-Type: application/msword');
header('Content-Length: ' . filesize($fullpath));
header("Content-Transfer-Encoding: binary");
header('Content-Disposition: attachment; filename="' . urldecode($path) . '"');
 
flush();
 
$file = fopen($fullpath, 'r');
while (!feof($file))
{
	print fread($file, filesize($fullpath));
	
	flush();
}
fclose($file);

Open in new window

0
snakeriver
Asked:
snakeriver
1 Solution
 
rdivilbissCommented:
This simpler version works for me, even with very large documents.

Not sure you want the fush after the headers, but maybe no harm.

<?PHP
if(!is_file($fullpath)) {
  exit('File not found');
}
 
header('Content-Type: APPLICATION\MSWORD');
header('Content-Length: ' . filesize($fullpath));
 
header('Content-Disposition: attachment; filename="' . urldecode($fullpath) . '"');
 
$handle = fopen($fullpath, "rb");
$contents = fread($handle, filesize($fullpath));
print $contents;
fclose($handle);
flush();
?>

Open in new window

0
 
snakeriverAuthor Commented:
THanks rdivilbiss, I found what the problem was.  I was including a file at the top of my page, and in that include file, there were two php statements seperated by a space:

<?php
code here...
?>

<?php
code here...
?>

I got rid of the space between the two, and it works just fine.  I guess it was just putting an extra line break before the header output...
0

Featured Post

Ask an Anonymous Question!

Don't feel intimidated by what you don't know. Ask your question anonymously. It's easy! Learn more and upgrade.

Tackle projects and never again get stuck behind a technical roadblock.
Join Now