Solved

Header download of word doc is jumbled

Posted on 2008-06-11
2
2,459 Views
Last Modified: 2008-06-11
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
Comment
Question by:snakeriver
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
2 Comments
 
LVL 29

Accepted Solution

by:
rdivilbiss earned 500 total points
ID: 21764913
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
 

Author Comment

by:snakeriver
ID: 21764934
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

Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

These days socially coordinated efforts have turned into a critical requirement for enterprises.
This article discusses how to create an extensible mechanism for linked drop downs.
The viewer will learn how to create and use a small PHP class to apply a watermark to an image. This video shows the viewer the setup for the PHP watermark as well as important coding language. Continue to Part 2 to learn the core code used in creat…
The viewer will learn how to create a basic form using some HTML5 and PHP for later processing. Set up your basic HTML file. Open your form tag and set the method and action attributes.: (CODE) Set up your first few inputs one for the name and …

736 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question