Ersetzen Sie Leerzeichen durch Unterstriche im Datei Hochgeladen
Habe ich ein einfaches Skript, dass es ermöglicht meinen Mitglieder einer Website hochladen, kurze Beispiele, die Ihre Kompositionen für die Kunden zu hören.
Einige Dateinamen haben Räume, die offensichtlich Probleme verursacht, wenn Sie versuchen zu spielen der samples. Gibt es eine Möglichkeit, ersetzen Sie diese Leerstellen mit Unterstrichen zwischen den Upload in das temp-Verzeichnis und verschieben die Datei in den 'samples' - Verzeichnis?
<?
$url = "http://domain.com/uploads/samples/";
//define the upload path
$uploadpath = "/home/public_html/uploads/samples";
//check if a file is uploaded
if($_FILES['userfile']['name']) {
$filename = trim(addslashes($_FILES['userfile']['name']));
//move the file to final destination
if(move_uploaded_file($_FILES['userfile']['tmp_name'],
$uploadpath."/". $filename)) {
echo "
bla bla bla, the final html output
";
} else{
if ($_FILES['userfile']['error'] > 0)
{
switch ($_FILES['userfile']['error'])
{
case 1: echo 'File exceeded upload_max_filesize'; break;
case 2: echo 'File exceeded max_file_size'; break;
case 3: echo 'File only partially uploaded'; break;
case 4: echo 'No file uploaded'; break;
}
exit;
}
}
}
?>
InformationsquelleAutor | 2012-05-15
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nach dieser Zeile:
Schreiben:
Einem Dateinamen wie Hallo Welt.mp3 (zwei Räume) kommen würde, als
hello__world.mp3
(zwei Unterstriche), um dies zu vermeiden, könnten Sie dies tun, statt:str_replace
ist(search, replace, subject)
.Das funktionierte, danke!
wird diese Arbeit für Leerzeichen in Dateinamen $filename = preg_replace('/\s+/', '_', $filename);
InformationsquelleAutor Paolo Bergantino
Warum
addslashes
obwohl? Das scheint auch ein bisschen zu einfach -- bin ich etwas fehlt?InformationsquelleAutor Explosion Pills
versuchen;
InformationsquelleAutor Adam