PHP bir dosyayı karşıya sonra indirin

2 Cevap

Ben PHP kullanarak bir dosya içindedirmek gerekiyveya ve ondan sonra da kullanıcıya içindedirilen dosya upload.

örneğiçinde

  1. Test.com / test.zip gelen dosyayı içindediriçinde

  2. Diske dosyayı önbelleğe veya kullanıcıya hemen akarsu ya.

Eğer mümkünse nasıl olabilir i yapmak bu curl kullanarak ya da ne kadar ben bu (hiçbir ekstra kütüphaneleriçindei) Nveyamal PHP kullanarak yapabilirsiçindeiz

2 Cevap

Echo (file_get_contents ()) kullanılarak belleğe ilk dosyayı yüklemek olacak, o zaman kullanıcı için irade çıktı echo - orada kullanıcıya başlar dosya teslim etmeden önce bir gecikme bu nedenle, ve PHP'nin bellek sınırı isabet risk.

Aldıkları oldum Aksine readfile() kısa sürede uzak bir kaynaktan indirilen konum olarak kullanıcıya parçaları hizmet edecek, sonra onları atmak. Bu çok daha az bellek kullanacak ve indirme daha hızlı başlayacaktır.

header('Content-Type: application/zip');
readfile('http://test.com/test.zip');
header("Content-Type: application/zip"); // correct? not sure.
echo(file_get_contents("http://test.com/test.zip"));

Ben bunu önbelleğe istiyorsan ... yapmak istediğim şey kaçırmış sürece, aramaları ayırmak, ve file_get_contents yere sonuçlarını saklayabilirsiniz. Bu çağrının sonucu bir dize olarak dosyasıdır. echo sadece tarayıcı üzerinden tekrar tekrar yazdırır. header Bu dosya aslında bir zip dosyası değil, bir html dosyası tarayıcı anlatmak için kullanılır.