Büyük dosyaları zip php kullanın

5 Cevap php

Ben tüm dosyalara bağlantılar içeren onay kutularını bir grup var bir php form var. Bir kullanıcı istediğiniz onay kutularını (dosyalar) tıkladığında, daha sonra dosyaları fermuarlar ve bir indirme zorlar.

Ben çalışmak için basit bir php zip kuvvet indir var, ama dosyaların bir büyük ya da birisi izin verirse diyelim kadar zip tüm listeyi seçer ve indirme, benim sunucu hataları dışarı zaman.

Ben sunucu boyutunu artırabilir anlıyorum, ama başka bir yolu vardır?

Teşekkürler!

5 Cevap

Eğer gerçekten PHP geçmesi gerekiyorsa, iyi fikir akımları kullanmaktır. Akarsu ile, bellek gereksinimleri çok düşük ve onlar içerik boyutu ile büyümez.

Bu sunucu belleği çalışan veya sizin müşteriye sonuç göndermesine izin vermez mi? Sadece bellek üzerinden çalışıyorsa, bunun yerine dosya sistemi sıkıştırma çalıştırın. Siz PHP ile sistem komutları yürütebilirsiniz

system("...command...");

Yani, kullanıcı seçimine bağlı olarak, (dosya kopyalama yapmak için sistem çağrısı kullanılarak) bir geçici dizinde seçilen dosyaları toplamak ve daha sonra geçici dizini zip (pkzip çağırmak için sistem çağrısı kullanılarak), ve daha sonra PHP sorabilirsiniz PHP komut silebilirsiniz sonra, istemciye geçici dosyayı gönderin.

Bu şekilde, vızıltının PHP uygulama bellek tüketmek değildir.

Sen web sunucusu / php düzeyinde gzip açmak ve PHP script sıkıştırmayı atlamak olabilir. O zaman sadece readfile() çağrıları arasında doğru zip dosyası başlıklarını çıktısı meselesi haline gelir.

Içeriği ne kadar dinamik bağlı olarak ve kaç kombinasyonları, sadece bir zip dosyası, her kombinasyon için önceden inşa edilmiş olabilir, sonra sadece kullanıcıya olduğunu dönün. 5 seçenek ile, 32 farklı arşiv korumak için olurdu çünkü bu, olsa eski hızlı alabilir.