Witam.
Mam pewien problem z funkcją download, a mianowicie chodzi o znaki specjalne i oczywiście o IE.
W innych przeglądarkach wszystko ładnie zapisuje, znaczy tytuł jest & # 1 2 3; ale to jest jeszcze do zniesienia, ale w IE zapisuje mi taki plik
_192
bez żadnego rozszerzenia, ani czegokolwiek.
Oto kod:
<?php
//polaczenie z baza
$_pobierz_id = $_GET['id'];
$query = "SELECT * FROM `filmy` WHERE `id` = '$_pobierz_id' ";
//polaczenie z baza
//wyciagniecie nazwy pliku i zmiana na oczekiwana
$_katalog = "plakaty/".$row['cat'];
$_sciezka_do_pliku = $_katalog."/".$row['file'];
$_extension_pobierz = explode(".", $row['file']); $_extension = $_extension_pobierz[1];
if($row['cat'] == 2) { $_serial = "_".$row['season']."x".$row['episode']; } else { $_serial = ""; }
$_nazwa_do_pobrania = str_replace(" ", "_" trim($row['title']))."".$_serial."_pobrane_z_".$row['site_name']."_".$row['id'].".".$_extension;
//wyciagniecie nazwy pliku i zmiana na oczekiwana
{
header('HTTP/1.1 404 File Not Found'); }
$range = $_SERVER['HTTP_RANGE'];
$r_start = 0;
$c_length = $fsize;
if ($range)
{
$reg = "/bytes=([0-9]+)-([0-9]*)/";
$r_start = (int) $matches[1];
$r_stop = (int) $matches[2];
if ($r_stop < $r_start) $r_stop = $fsize - 1;
$c_length = $r_stop - $r_start + 1;
header('HTTP/1.1 206 Partial Content'); header('Content-Range: bytes ' . $r_start . '-' . $r_stop . '/' . $fsize);
}
else
{
}
$mm_type="application/octet-stream";
gmdate('D, d M Y H:i:s', $ftime) . ' GMT'); header('Content-Disposition: ' . 'attachment; filename="' . $_nazwa_do_pobrania . '"');
header('Accept-Ranges: bytes'); header("Content-Type: " . $mm_type); //header('Content-Type: application/x-unknown');
header("Content-Transfer-Encoding: binary\n"); header('Content-Length: ' . $c_length);
if ($fp = fopen($file, 'rb')) {
}
?>
CO zrobić, żeby rozwiązać ten problem, dokładnie chodzi o plakat do jakiegoś francuskiego filmu À l'intérieur. W bazie danych nazwa ta jest zapisana w ten sposób & # 1 9 2 ; l'intérieur (oczywiście bez tych spacji).
Proszę o pomoc.
POzdrawiam