Aşağıdaki şekilde bir set başlığını:
header('Content-Length: ' . filesize($strPath));
ZendServer ile benim PC gayet iyi çalışıyor ve ben doğru dosya boyutu ile bir dosyayı indirebilirsiniz. Üretim sunucusunda, bir Apache ile Solaris ve derlenmiş PHP, ben sıfıra eşit dosya boyutu, bu nedenle boş bir dosya ile bir dosya olsun.
Bir yapılandırma parametre var mı? ': 1222 Content-Length' ayarlamak için engel bir şey mi?
Teşekkürler.
Kodu:
<?php
error_reporting(E_ALL); ini_set('display_errors', '1');
require 'includes/prepend.inc.php';
require __ADMIN_DIR__.'/AdminInfo.php';
$intFile = QApplication::QueryString('fileID');
if($intFile == '') die('Error: missing ID');
$objFile = File::Load($intFile);
$blnRight = false;
$objAdminInfo = new AdminInfo();
if($objAdminInfo->isAdmin()) {
$blnRight = true;
}
else {
$objSecMan = new SecurityManager(
'file:'.$objFile->FileID,
$objAdminInfo->getUserID()
);
$blnRight = $objSecMan->processResource('view');
}
// if the user can modify and or publish, can even view the file
if(!$blnRight) {
$blnRight = $objSecMan->processResource('modify');
if(!$blnRight) {
$blnRight = $objSecMan->processResource('publish');
}
}
//$strPath = __UPLOADS__.DIRECTORY_SEPARATOR.$objFile->FileID;
$strPath = 'subdept.csv';
if (file_exists($strPath) && $blnRight) {
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename='.$strPath);//$objFile->Filename);
header('Content-Transfer-Encoding: binary');
header('Expires: 0');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Pragma: public');
header('Content-Length: ' . filesize($strPath));
ob_clean();
flush();
readfile($strPath);
exit;
}
else {
die('Restricted access');
}
>
Ben $ strPath çalıştığını önce kodu yorum, bu nedenle zaman kanlı çerçevesinde bir şey olmalı. Ben uzakta tüm CMS atmak istiyorum.