PDA

View Full Version : دانولود فایل



exlord
سه شنبه 04 مرداد 1390, 12:26 عصر
من یه اسکریپت دارن که یه خروخیش یه فایل word هست . البته یه اسکریپت آمادس و خودم ننوشتم ...
توی local مشکلی نداره ولی توی سرور به جای اینکه صفحه دانولود فایل بیاد خود محتوای فایل تو صفحه چاپ میشه ....؟مشکل این چی میتونه باشه ؟



function output($fileName = '', $saveInPath = ''){
$this->endSession();

$outputCode = '';
$outputCode .= "<html xmlns:o=\"urn:schemas-microsoft-com:office:office\"\n";
$outputCode .= " xmlns:w=\"urn:schemas-microsoft-com:office:word\"\n";
$outputCode .= " xmlns=\"http://www.w3.org/TR/REC-html40\">\n";

$outputCode .= $this->getHeader();

$outputCode .= $this->getBody();

$outputCode .= "</html>\n";

$fileName = $fileName != '' ? $fileName : basename($_SERVER['PHP_SELF'], '.php') . '.doc';

if($saveInPath == ''){
if($this->isDebugging){
echo nl2br(htmlentities($outputCode));
}else{
header("Content-Type: application/msword; charset=\$this->documentCharset\"");

header("Content-Disposition: attachment; filename=\"$fileName\"");

echo $outputCode;
}
}else{
if(substr($saveInPath,-1) <> "/")
$saveInPath = $saveInPath."/";
file_put_contents($saveInPath . $fileName, $outputCode);
}
}//end output()


$doc->output("export.doc");

ماهان مقدم
سه شنبه 04 مرداد 1390, 23:10 عصر
این دوتا خط رو بزار بعد دوتا headerت ببین ردیف میشه. بجای $fsize اندازه فایل رو بده البته یادم نیست با این درست بشه یا نه ولی هر چی هست مشکل از headerه.


header("Content-length: $fsize");
header("Cache-control: private");