[PHP] Envoi des fichiers avec espaces...
J'ai fait un site en php ou l'utilisateur envoi des fichiers!
le problème c'est que si il envoi des fichiers contenant des espaces ça ne marchent plus !
ex: image.jpg MARCHE :)
image 1.jpg NE MARCHE PAS :(
CODE
<?PHP
$Type_Fichier = array(
"Video" => "Video",
"Images" => "pic",
"Musiques" => "zik",
"Autres" => "cc",
);
$rep = "user/$login/";
if (!is_dir($rep)) @mkdir($rep);
if ($_SERVER['REQUEST_METHOD'] == "POST" &&
isset($_POST['folder']) && isset($Type_Fichier[$_POST['folder']]) &&
@is_uploaded_file($_FILES['file']['tmp_name'])) {
$sFolder = $rep.strtolower($_POST['folder']);
if (!is_dir($sFolder) && !@mkdir($sFolder))
die(" '".$sFolder."'");
if (!@move_uploaded_file($_FILES['file']['tmp_name'], $sFolder."/".$_FILES['file']['name']))
die(" '".$sFolder."'");
}
echo "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\"><HTML>";
echo "<HEAD><TITLE>Partage de Fichiers</TITLE>";
if ($hDir = opendir($rep)) {
while (False !== ($sData = readdir($hDir))) {
if ($sData != "." && $sData != "..") {
echo "<B>".strtoupper($sData)."</B>";
echo "<DIV STYLE=\"margin-left: 20px; padding: 2px;\">";
$hDir2 = opendir($rep.$sData);
while (False !== ($sData2 = readdir($hDir2))) {
if ($sData2 != "." && $sData2 != "..")
echo "<A Href=$rep".$sData."/".$sData2.">".$sData2."</A><BR>";
}
closedir($hDir2);
echo "</DIV><BR>";
}
}
closedir($hDir);
}
echo "<center><FORM ENCTYPE=\"multipart/form-data\" METHOD=\"post\"";
echo "<BR><BR><B>Envoyer le fichier : </B><BR>";
echo "<INPUT TYPE=\"file\" NAME=\"file\"><BR><b>Type :</b>";
if ($langResult)
echo "<B>".$FICHIER."</B><INPUT TYPE=\"hidden\" NAME=\"folder\" VALUE=\"".$FICHIER."\">"; else {
echo "<SELECT NAME=\"folder\">";
$walkFunction = ($FICHIER) ?
'echo "<OPTION"; if ($v == "'.$FICHIER.'") echo " SELECTED"; echo ">".$v."</OPTION>";' :
'echo "<OPTION>".$v."</OPTION>";';
array_walk(array_keys($Type_Fichier), create_function('$v', $walkFunction));
echo "</SELECT>";
}
echo "<br />";
echo "<br />";
echo " <input name='login' type='text' id='login' VALUE = '$login' /> ";
echo " <input name='mdp' type='password' id='mdp' VALUE = '$mdp'/> ";
echo "<BR><BR><INPUT TYPE=\"submit\" VALUE=\" OK \">";
echo "</FORM></BODY></HTML></center>";
?>
Merci d'avance de votre aide!
le problème c'est que si il envoi des fichiers contenant des espaces ça ne marchent plus !
ex: image.jpg MARCHE :)
image 1.jpg NE MARCHE PAS :(
CODE
<?PHP
$Type_Fichier = array(
"Video" => "Video",
"Images" => "pic",
"Musiques" => "zik",
"Autres" => "cc",
);
$rep = "user/$login/";
if (!is_dir($rep)) @mkdir($rep);
if ($_SERVER['REQUEST_METHOD'] == "POST" &&
isset($_POST['folder']) && isset($Type_Fichier[$_POST['folder']]) &&
@is_uploaded_file($_FILES['file']['tmp_name'])) {
$sFolder = $rep.strtolower($_POST['folder']);
if (!is_dir($sFolder) && !@mkdir($sFolder))
die(" '".$sFolder."'");
if (!@move_uploaded_file($_FILES['file']['tmp_name'], $sFolder."/".$_FILES['file']['name']))
die(" '".$sFolder."'");
}
echo "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\"><HTML>";
echo "<HEAD><TITLE>Partage de Fichiers</TITLE>";
if ($hDir = opendir($rep)) {
while (False !== ($sData = readdir($hDir))) {
if ($sData != "." && $sData != "..") {
echo "<B>".strtoupper($sData)."</B>";
echo "<DIV STYLE=\"margin-left: 20px; padding: 2px;\">";
$hDir2 = opendir($rep.$sData);
while (False !== ($sData2 = readdir($hDir2))) {
if ($sData2 != "." && $sData2 != "..")
echo "<A Href=$rep".$sData."/".$sData2.">".$sData2."</A><BR>";
}
closedir($hDir2);
echo "</DIV><BR>";
}
}
closedir($hDir);
}
echo "<center><FORM ENCTYPE=\"multipart/form-data\" METHOD=\"post\"";
echo "<BR><BR><B>Envoyer le fichier : </B><BR>";
echo "<INPUT TYPE=\"file\" NAME=\"file\"><BR><b>Type :</b>";
if ($langResult)
echo "<B>".$FICHIER."</B><INPUT TYPE=\"hidden\" NAME=\"folder\" VALUE=\"".$FICHIER."\">"; else {
echo "<SELECT NAME=\"folder\">";
$walkFunction = ($FICHIER) ?
'echo "<OPTION"; if ($v == "'.$FICHIER.'") echo " SELECTED"; echo ">".$v."</OPTION>";' :
'echo "<OPTION>".$v."</OPTION>";';
array_walk(array_keys($Type_Fichier), create_function('$v', $walkFunction));
echo "</SELECT>";
}
echo "<br />";
echo "<br />";
echo " <input name='login' type='text' id='login' VALUE = '$login' /> ";
echo " <input name='mdp' type='password' id='mdp' VALUE = '$mdp'/> ";
echo "<BR><BR><INPUT TYPE=\"submit\" VALUE=\" OK \">";
echo "</FORM></BODY></HTML></center>";
?>
Merci d'avance de votre aide!
Configuration: Windows XP Firefox 1.5.0.12