Ben FTP, HTTP üzerinden kullanıcının tarayıcısına / Boru bir dosya akışı için çalışıyorum. Ben bir FTP sunucusunda bir dosyanın içeriğini yazdırmak için çalışıyorum, olduğunu.
Bu ben bugüne kadar ne var:
public function echo_contents() {
$file = fopen('php://output', 'w+');
if(!$file) {
throw new Exception('Unable to open output');
}
try {
$this->ftp->get($this->path, $file);
} catch(Exception $e) {
fclose($file); // wtb finally
throw $e;
}
fclose($file);
}
$this->ftp->get
bu gibi görünüyor:
public function get($path, $stream) {
ftp_fget($this->ftp, $stream, $path, FTP_BINARY); // Line 200
}
Bu yaklaşımla, sadece kullanıcının tarayıcısına küçük dosya göndermek mümkün duyuyorum. Büyük dosyalar için, hiçbir şey basılmış olur ve ben (Apache günlükleri okunabilir) önemli bir hata alıyorum:
PHP Fatal error: / xxx / ftpconnection.php bitkin 16777216 bayt İzin bellek boyutu hattında 200 (15.994.881 bayt ayırmaya çalıştı)
Ben (bir şey tarayıcınıza gönderilen görünüyor) başarı olmadan php://output
php://stdout
ile değiştirmeyi denedim.
Aynı anda tarayıcı bu verileri gönderirken Nasıl verimli FTP indirebilirsiniz?
Note: I would not like to use file_get_contents('ftp://user%3Apass@host%3Aport/path/to/file '),
or similar.