2016-04-07 22 views
0

Sanırım Sunucumdan indirmek istedikleri dosyanın ismini bilen bir cihaz var.PHP Dosya Transferleri

Aygıtı dosya sistemine vermeden söz konusu dosyayı bu aygıta nasıl aktarabilirim? Örneğin

, ben "something.zip"

ping.php (yere sunucunun dosya sisteminde) something.zip konumunu bilir bir get isteği alır bir sayfa ping.php olduğunu varsayalım, ama Kullanıcının dosya sistemine erişmesine izin veremem ya da dosyanın yerini bilmesine izin veremiyorum (hatta birileri wireshark gibi bir şeyden gizlenmiş olması gerekir).

Bu sorunu nasıl çözebilirim?

Kolay bir çözüm olabilir, bu konularda çok iyi bir şekilde bilgili değilim.

Herhangi bir değişiklik yaparsa, bir Linux kutusunda Apache sunucusu kullanıyorum.

+0

Bu aslında standart bir yolu dosya indirme hayata geçirildiğini: Bütünlüğü için

, burada ben PHP bir dosya indirme yapmak için geçmişte kullandığınız bazı kod göndermek http dosyasını açıklayan başlıkları ve daha sonra php komut dosyası tarafından oluşturulan yanıt içindeki dosyaların içeriği. Bu kadar. – arkascha

cevap

3

Dosya, Web üzerinden erişilemeyen bir klasörde oturuyorken dosya transferini kolaylaştırmak için bir PHP betiği oluşturabilirsiniz. Bu, dosya indirme işlemlerini sistemimde genellikle ele alıyorum.

Gerçek dosya aktarımını yapmak için kullanabileceğiniz çok sayıda örnek komut dosyası vardır. Anahtar, bu dosyayı web erişilebilir dosya sisteminin dışına koymaktır.

$filename="filetodownload.xyz"; 
$cf = realpath("/non-webaccessible-folder/".$filename); 
$file=$cf; 

header('Content-Disposition: attachment; filename="' . basename($cf) . '"'); 
header("Content-Length: " . filesize($cf)); 
header("Content-Type: application/octet-stream"); 
readfile(realpath($cf)); 
+0

Üzgünüz ... Bunu bir üretim senaryosundan aldım ve o parçayı çıkarmayı unuttum. Benim durumumda gerekli. – LuvnJesus

+0

Teşekkürler! Bu ihtiyacım olan şey gibi görünüyor. Bu kod hakkında bana açık olmayan bazı şeyler var. [BU YENİ SORU] 'a bakın (http://stackoverflow.com/questions/36499625/php-file-transfer-how-does-this-work) – JEJoll