Tja. Sitter och jobbar på ett downloadscript som funkar rätt bra. Det är bara en grej som inte funkar. Det är när man ska försöka ladda ner en fil som har "å","ä" eller "ö" i namnet. Verkar som det itne funkar att skicka dom tecknen med funktionen Header()? Det fungerar helt perfa annars. Några tips på hur man kan fixa det?
Koden för att göra detta ser ut såhär:
while($row=mysql_fetch_array($result))
{
$filer[$i][0] = $row["id"];
$filer[$i][1] = $row["url"];
$i++;
}
$fil = $filer[$id][1];
//skickar iväg till url'en som är inlagd i databasen
header("Location: $fil");
Så här ser det ut i webbläsarens adressfält när det blir fel. Filen ska egentligen heta "glo - ä.mp3": glo%20-%20%E4.mp3
Det som händer är att mellanslag, å, ä, ö och andra "speciella tecken" "URL-kodas" för att kunna skickas över nätet.
Prova om du kanske kan ha nytta av urldecode (se http://www.php.net/manual/en/function.urldecode.php ) på filnamnet eller någon av de andra relaterade funktionerna kring detta
Det enklaste är kanske att inte tillåta ÅÄÖ, mellanslag osv i filerna som du har på nätet, dvs fundera på om det inte är värt mödan att ändra namnen när filerna har laddas upp... (så att det inte finns några konstiga tecken i filnamnen när de senare skall laddas ner )
264 ms totalt · 4 externa anrop · v20260731065814-full.51f67c91