Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: zip
Forum PHP.pl > Forum > PHP
kicaj
Uzywam klasy z: http://www.planet-source-code.com/vb/scrip...57&lngWId=8
Poprawnie dziala zapis pliku zip na dysku serwera, jednak problem pojawia sie wtedy gdy chce automatycznie pobrac plik do sciagniecia, przy linikach:

  1. <?php
  2. header("Content-type: application/octet-stream");
  3. header("Content-disposition: attachment; filename=test.zip");
  4. ?>


Problem polega na tym, ze plik jest sciagany, zapisywany i w momencie rozpakowania plik jest uszkodzony:/
thornag
A jaka przegladarka ? Jest roznica miedzy ocetetstream a ocetet-stream

Pozatym mialem to samo zpodam kodem nie bede taki tongue.gif

  1. <?php
  2. if(ini_get('zlib.output_compression'))
  3.  ini_set('zlib.output_compression', 'Off');
  4.  
  5.  if (ereg('Opera(/| )([0-9].[0-9]{1,2})', $_SERVER['HTTP_USER_AGENT']))
  6. $UserBrowser = "Opera";
  7. elseif (ereg('MSIE ([0-9].[0-9]{1,2})', $_SERVER['HTTP_USER_AGENT']))
  8. $UserBrowser = "IE";
  9. else
  10. $UserBrowser = '';
  11.  
  12.  
  13. $mime_type = ($UserBrowser == 'IE' || $UserBrowser == 'Opera') ? 'application/octetstream' : 'application/octet-stream';
  14.  
  15. header('Content-Type: ' . $mime_type);
  16. header('Content-Disposition: attachment; filename="'.basename($zipName).'"');
  17. header('Accept-Ranges: bytes');
  18. header("Content-Length: ".filesize($zipName)); 
  19. header("Cache-control: private");
  20. header('Pragma: private');
  21. readfile($zipName);
  22. }
  23. ?>


No to tyle smile.gif Ini set jest dla IE, pozniej sprawdzasz przegladarke zeby podrzucic dobry typ MIME. A reszta to juz chyba jasna ?
kicaj
Juz dziala, na Operze, FF i IE dziala na application/octet-stream bez problemu.

Mam jeszcze jedno pytanie: do metody add_file dodaje pliki ze sciezka (foldery itp), w spakowanym pliku ta sciezka pozostaje, chcialbym jednak w samym zipie miec tylko pliki, bez folderow. Jak to zrobic?
thornag
To juz trzeba zmienic sama klase. Pamietam mialem tem sam problem. Znajdz metode odpowiedzialna za dodawanie pliku do archiwum i dodaj do zmiennej zawieracacej nazwe pliku basename($zmienna).

Powinno pomoc.

Jesli nie znajdziesz nic zarzuc kawalkiem kodu z classy mozemy poszukac razem.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.