Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] download i kodowanie nazw plików
Forum PHP.pl > Forum > PHP
frickle
Witam

Mam kawałek kodu odpowiedzialny za download, a dokładniej plik do którego przekazuję przez formularz identyfikator pliku którego nazwa znajduje się w bazie danych. Baza koduje w UTF-8. Po podstawieniu nazwy pliku pobranej z bazy, skrypt zgłasza błąd że pliku nie odnaleziono, ale dzieje się tak tylko gdy w nazwie pliku znajdują się polskie znaki. Próbowałem to obejść przez zmianę kodowania konkretnego napisu zawierającego ścieżkę do pliku:

  1. $fullpath = "/sciezka/do/katalogu";
  2.  
  3. include 'classes/db.php';
  4. $dbmanager=new dbmaker();
  5. $query="select katalog, plik from udostepnienia where id=".$_POST['fileid'];
  6. $result = mysql_query($query,$dbmanager->GetDb());
  7. $record = mysql_fetch_assoc($result);
  8. $fullpath.=$record['katalog'].$record['plik'];
  9.  
  10. $fullpath = str_replace("//", "/", $fullpath);
  11. //zmiana kodowania - próbowałem różnych
  12. $fullpath = mb_convert_encoding($fullpath, "ISO-8859-2");
  13.  
  14. if( headers_sent() )
  15. die('Headers Sent');
  16.  
  17. header('Content-Type: application/force-download');
  18. header('Content-Disposition: attachment; filename='.basename($fullpath));
  19. header('Content-Transfer-Encoding: binary');
  20.  
  21. readfile($fullpath);


Może ktoś miał taki problem i wie jak go obejść?
jurek_7
Próbowałeś mysql_query("SET NAMES utf8", $connection); ?
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.