Tamam ben bir sorun var. Ben bir Linix web sunucusu bir uygulama barındırmak için kullanılır (apache 2 ile RHEL 4) var. Bu uygulamanın bir parçası php komut kümesidir. Bazı form değişkenleri kabul eder ve sonra kullanıcıya bir dosyayı karşıdan bir senaryo oluşturduk. İşte kod si:
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename='.$destFileName);
header('Expires: 0');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Pragma: public');
header('Content-Length: ' . filesize($fullPath));
ob_clean();
flush();
readfile($fullPath);
Bu, tüm çalışıyor ve dosya indirilmiş olur. Ama bir sorun var. Bu dosyalar Windows makinede (HER ZAMAN) için, Linux kutusundan indirilen edilmektedir. Sorun kodlama. Eğer Linix kutusunda dosyasına baktığınızda tüm metin hizalanmış ve tüm sütunlar iyi görünüyorsun. (Dosyaları sadece düz metin dosyalarıdır). Dosya, Windows kutusunda üzerine indirilen ve Not Defteri'nde açılır aldığında ancak, dosya tüm kadar faul olduğunu ve hiçbir şey hizalanmış. Ayrıca, (bir kutu gibi görünüyor olanlar, ancak bilinmeyen charactor sadece genel temsilidir) garip charactors bkz. Bu dosya başka bir program içine alındığında, bu çalışmıyor.
Ben WordPad dosyayı açmak Ancak, tüm metin doğru bakmak. Ben wordpad onu kurtarmak eğer doğru ithalat ve Notpad doğru bakacağız.
Ben dosya kodlama çok knowlege yok, bu yüzden indirmek için kullanıcıya göndermeden önce dosya kodlamak konusunda herhangi bir bilgi çok iyi olurdu.
Ben readfile ($ FullPath) değiştirmeyi deneyin vermedi; ile:
$handle = @fopen($fullPath, "r");
if ($handle) {
while (!feof($handle)) {
$buffer = fgets($handle);
$buffer = str_replace('\n', '\r\n', $buffer);
echo $buffer;
}
fclose($handle);
}
Teşekkürler!