Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] jak otworzyc rar?
Forum PHP.pl > Forum > Przedszkole
unsec
na serwerze (sieć domowa) mam w katalogu pliki, m.inn. pdf, rar, zip. Chcę mieć możliwość otwarcia pliku rar (i zip) z linku w dokumencie .php w programie WinRar tzn. klikam na link do pliku i otwiera mi się WinRar z zawartością archiwum.

Generalnie kliknięcie w link wywołuje podstronę php która obsługuje odczyt plików. Dla PDF już mi działa (doc, txt też) ale dla rar/zip nie chce.

kod zastosowany dla PDF gdzie @$file_name to nazwa pliku a @$file_path to ścieżka do pliku

  1.  
  2. elseif (preg_match('@(.*)\.(pdf)@i',$file_name))
  3. {
  4. //dobre
  5. header('Content-Type: application/pdf');
  6. echo file_get_contents($file_path);
  7. }
  8.  


dla pliku zip - plik nie otwiera się bezpośrednio w WinRAR, zostaje ściągnięty do TEMP i dopiero klikniecie w niego otwiera go w WinRAR (moja przeglądarka to Chrome, w IE pewnie byłoby inaczej)

  1.  
  2. elseif (preg_match('@(.*)\.(zip)@i',$file_name))
  3. {
  4. //dobre
  5.  
  6. header("Content-Type: application/octet-stream");
  7. header("Content-Disposition: attachment; filename='$file_name'");
  8. header("Content-Transfer-Encoding: binary");
  9. // load the file to send:
  10. readfile($file_path);
  11.  
  12. }
  13.  


ale z plikami rar nie ma juz tak dobrze, po zastosowaniu ponizszego kodu plik jest ściagany jak zip a po próbie jego otwarcia wyskakuje WinRAR i otrzymuję uszkodzone archiwum (info o uszkodzonej zawartosci), z pustym oknem WinRara (archiwum na serwerze jest ok)

  1.  
  2. elseif (preg_match('@(.*)\.(rar)@i',$file_name))
  3. {
  4. //dobre
  5. header('Content-Type: application/rar');
  6. header("Content-Disposition: attachment; filename='$file_name'");
  7. header("Content-Transfer-Encoding: binary");
  8. // load the file to send:
  9. readfile($file_path);
  10.  
  11. }
  12.  


Może podpowiecie poprawne rozwiązanie otwarcia pliku RAR?
pozdrawiam
com
Kod
application/x-rar-compressed
a nie
Kod
application/rar


http://en.wikipedia.org/wiki/Rar wink.gif

tak samo zip
http://en.wikipedia.org/wiki/ZIP_%28file_format%29
unsec
dzięki za podpowiedź ale nic to nie zmieniło
com
http://php.net/manual/en/book.rar.php
unsec
obawiam się że popychasz mnie w stronę instalacji dll-a a tu raczej chodzi nie o wewnętrzną obsługę ale o otworzenie programem zewnętrznym (już zainstalowanym w systemie). tak jak zip nie jest otwierany procedurami wewnętrznymi (tak sądzę) ale poprzez skojarzenie z programem zewnętrznym. Pdf otwierany jest bezpośrednio w przeglądarce ale to juz raczej zasługa przeglądarki.

w rarze jak i w zipie sa skompresowane pkiki do podglądu (książki) - chciałbym aby mozna je było otwierać bezpośrednio z WinRara a nie ładowac rara na dysk, rozpakowywac i dopiero otwierać wybrana książkę.
com
no to napisałem Ci jak to rozwiązać, musisz rozpakować sobie ten plik na serwerze, a WinRar(płatny) otwiera się po stronie klienta smile.gif do pdf to akurat jest stworzony viewer w przeglądarce a jak nie to masz dodatek od adobe biggrin.gif
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.