Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> pobieranie plików + problem z kodowaniem
brayan.tr
post
Post #1





Grupa: Zarejestrowani
Postów: 40
Pomógł: 0
Dołączył: 1.03.2011

Ostrzeżenie: (0%)
-----


Witam,
Pobieram pliki z serwera za pomocą php. Dzieje się dziwna rzecz, mianowicie skrypt działa poprawnie przy pobieraniu pdf i txt bez polskich znaków. W innych przypadkach na dysk zawsze ściągają się pliki z uszkodzonym kodowaniem.

Skrypt:
  1. switch ($ext) {
  2. case "pdf": $ctype="application/pdf"; break;
  3. case "exe": $ctype="application/octet-stream"; break;
  4. case "zip": $ctype="application/zip"; break;
  5. case "doc": $ctype="application/msword"; break;
  6. case "xls": $ctype="application/vnd.ms-excel"; break;
  7. case "ppt": $ctype="application/vnd.ms-powerpoint"; break;
  8. case "gif": $ctype="image/gif"; break;
  9. case "png": $ctype="image/png"; break;
  10. case "jpeg":
  11. case "jpg": $ctype="image/jpg"; break;
  12. default: $ctype="application/force-download";
  13. }
  14.  
  15. header('Content-type: '.$ext);
  16. header('Content-Disposition: attachment; filename="'.$plik.'"');
  17. readfile($sciazka);


próbowałem także, czegoś takiego. i wynik zawsze ten sam:
  1. switch ($ext) {
  2. case "pdf": $ctype="application/pdf"; break;
  3. case "exe": $ctype="application/octet-stream"; break;
  4. case "zip": $ctype="application/zip"; break;
  5. case "doc": $ctype="application/msword"; break;
  6. case "xls": $ctype="application/vnd.ms-excel"; break;
  7. case "ppt": $ctype="application/vnd.ms-powerpoint"; break;
  8. case "gif": $ctype="image/gif"; break;
  9. case "png": $ctype="image/png"; break;
  10. case "jpeg":
  11. case "jpg": $ctype="image/jpg"; break;
  12. default: $ctype="application/force-download";
  13. }
  14.  
  15. header('Content-Description: File Transfer');
  16. header('Content-Type: application/octet-stream');
  17. header("Content-Type: $ctype");
  18. header('Content-Disposition: attachment; filename="$plik"');
  19. header('Content-Transfer-Encoding: binary');
  20. header('Expires: 0');
  21. header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
  22. header('Pragma: public');
  23. header('Content-Length: ' . filesize($sciazka));
  24. flush();
  25. readfile($sciazka);


Propozycje ?

Go to the top of the page
+Quote Post
Fifi209
post
Post #2





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

Ostrzeżenie: (0%)
-----


  1. header('Content-Type: costam; charset=utf8')


Z tego co pamiętam. (IMG:style_emoticons/default/smile.gif)
Kodowanie utf8 jest tu oczywiście przykładem, tak jak "costam"
Go to the top of the page
+Quote Post
brayan.tr
post
Post #3





Grupa: Zarejestrowani
Postów: 40
Pomógł: 0
Dołączył: 1.03.2011

Ostrzeżenie: (0%)
-----


Dałem coś takiego np dla obrazka
  1. header("Content-Type: image/jpg; charset=utf8");


I obrazek nadal sie nie włącza. Coś źle robię albo nie w tym problem.

Ten post edytował brayan.tr 27.04.2011, 19:45:54
Go to the top of the page
+Quote Post
Fifi209
post
Post #4





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

Ostrzeżenie: (0%)
-----


Jak mogłeś dla obrazka dodać... myśl chłopie.
Go to the top of the page
+Quote Post
brayan.tr
post
Post #5





Grupa: Zarejestrowani
Postów: 40
Pomógł: 0
Dołączył: 1.03.2011

Ostrzeżenie: (0%)
-----


Chłopie kodowanie plików w każdym formacie je psuło. Dzięki za zainteresowanie.

Rozwiązałem problem. Wina leżała po stronie plików includowanych przez opisywanym w tym poście kodem. Jeden z plików miał kodowanie UTF-8 a nie UTF-8 bez DOM. To była jedyna wina.

Mam nadzieje że się to komuś w przyszłości przyda.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 13:57