Neden PHP bu zip dosyası oluşturmak değildir (izinleri sorunu)

3 Cevap php
  • Ben windows duyuyorum

  • Ben bazı dosyaları sıkıştırmak için Phing kullanıyorum

  • Ben şeyler sıkıştırılmış olmaktan çok var

  • Dosyaları sıkıştırılmış olmanın belirli bir Phing fileset dahil olanlar hariç, işleri sıkıştırma

  • Ben hata ayıklama, ben ZipArchive :: close false dönüyor Phing en PK Görev görebilirsiniz. Hata dize "engellendi izni" okur. Kılavuzda o () aslında dosyası yazar ne yakın belirtiyor.

  • Bu bir ilk, son ya da her neyse wether diğer bir deyişle o olur, zamansal birleştirme değildir. Diğer tüm olanları çalışır. Bunda farklı bir şey görünüşte yok.

İşte benim build dosyası: http://pastebin.org/84786 (bir ay için iyi)

Sorun hattı 251 yer almaktadır. Zip görevleri önceki ve bu iki çalışma cezası takip. Ben görebiliyorum ayıklayıcısında yaklaşık 150 dosya zip eklenir. Ben ayıklayıcısında doğru olması için tüm yolları doğruladıktan.

Yapı linux üzerinde ince iş gibi görünüyor.

Birazdan zip dosyaları gidiyoruz klasörü tıkladığınızda, yalnızca kutu, "out blued" işaretli değil veya denetlenmeyen olup olmadığını kontrol edin okuyun. Ben kontrol veya boş bırakın ve ok tuşuna basın ve geri klasörün özelliklerinde gitmek Wether, checkbox "mavi" yine. Görünüşe göre bu tasarım gereğidir (http://support.microsoft.com/kb/326549) ve sadece o bir dosya ile olur çünkü bu sorun gibi görünmüyor.

Ben 252 hat ve örneğin, sağ üstünde "ithalatçı" modülünden dosyaları, o zip oluşturur işaret etmek fileset değiştirmek giderseniz diğer garip şey. Ancak hat 236. Tar.gz aynı dosya gurubu ince her zaman çalışmak için kanıtlıyor. Yani sadece zip görevler için belirli dosya seti ile olur. Set dosyası tar görev ile çalışıyor. Aslında aynı zamanda bu dosyaları başvuruda altındaki "paket" yorum altında tüm görevleri oluşturulan alamadım, ama tar.gz dosyaları yapmak.

Ne verir?

Ayrıca: Yeni gözlem ... Ben yeterince hızlı ben inşa ediliyor myzipfile.zip.tmp görebilirsiniz dosya görünümü yenilemek ise hem Windows makinelerde gibi görünüyor, ancak oluşturulan geçmez myzipfile.zip.

Linux üzerinde sadece çift her şey kusursuz çalışıyor kontrol etti. Rakam gidin.

3 Cevap

Sorun gerçek ZIP dosyası TMP dosyayı yeniden adlandırma ile ilgisi var gibi yeni gözlem sonra, bu sesler. Bir dosya adı sorunu var, ya da dosya tamamen yeniden adlandırın anda henüz bitmiş değil gecikmeli yazma sorunu bir tür var ya.

Ben söz konusu kod görmedim, ama benzer bir sorunu vardı. Bu ileri yerine geri bölü çizgilerini daha eğik kullanarak nedeniyle kod oluştu. Ben bölü değişti ve (\ \) onları kaçmak zorunda kaldı. Yardımcı olur ama bazen büyük sorunlara neden küçük şeyler olup olmadığını bilmiyorum.

Eğer Linux / Unix üzerinde çalışma hakkında söylediklerine dayanarak ben size dosya sistemi / kilitleme semantik bir fark çarptı olduğunu tahmin ediyorum. Unix dosyaları sadece voluntarilly (onlar "kilitleme farkında değil" zaman diğer programlar hala onları okuyabilir) kilitlenir. Pencerelerde kilit onlar başka bir program tarafından kullanılıyor ise tüm dosyaları okumak değil, ve kesinlikle (bu biri için hata mesajları olmalıydı) bunları kaldırmak olamaz anlamı, işletim sistemi tarafından uygulanır. Ben tahmin varsa, etkin bir işlem tarafından kilitli ve başarısız bir dosyayı sıkıştırmak için çalışıyoruz. () Diğer zip işlemleri çalışma gibi ben yazı bir sorun olmadığını varsayalım, ve yeterli disk alanı / kota var (ve bir FAT dosya sistemi üzerinde 2GB daha büyük dosyaları yazma değil)