1. Créer un dossier nommé "upload"
2. Créer un fichier en php3 nommé "upload" (PHP3 !!)
<?php
// on charge les language des fichiers
function get_translations($lngfile) {
if (file_exists($lngfile)) {
$lines = file($lngfile);
while (list(,$line) = each($lines)) {
list($key,$val)= explode("=",$line);
$phrases[$key] = $val;
}
return $phrases;
} else {
return false;
}
}
function translate($str,$vals="") {
global $phrases;
if ($phrases) {
$p_str = $phrases[$str];
if ($p_str == "") {
$p_str = $str;
}
} else {
$p_str = $str;
}
if (gettype($vals)=="array") {
$p_str = sprintf($p_str,$vals[0],$vals[1],$vals[2],$vals[3],$vals[4],$vals[5],$vals[6]);
}
return (trim($p_str));
}
$my_max_file_size = "102400"; // le poids maximal de tes fichiers (en bytes)
$image_max_width = "800"; // largeur maximal (si image)
$image_max_height = "800"; // hauteur maximal (si image)
$the_path = "upload/"; // dossier où les fichiers seront uploadés
$registered_types = array( // fichiers admissibles
"application/x-gzip-compressed" => ".tar.gz, .tgz",
"application/x-zip-compressed" => ".zip",
"application/x-tar" => ".tar",
"text/plain" => ".html, .php, .txt, .inc (etc)",
"image/bmp" => ".bmp, .ico",
"image/gif" => ".gif",
"image/pjpeg" => ".jpg, .jpeg",
"image/jpeg" => ".jpg, .jpeg",
"application/x-shockwave-flash" => ".swf",
"application/msword" => ".doc",
"application/vnd.ms-excel" => ".xls",
"application/octet-stream" => ".exe, .fla (etc)"
);
$allowed_types = array("image/bmp","image/gif","image/pjpeg","image/jpeg");
function form($error=false) {
global $PHP_SELF,$my_max_file_size,$lng;
if ($error) print $error . "<br><br>";
print "\n<form ENCTYPE=\"multipart/form-data\" action=\"upload.php3\" method=\"post\">";
print "\n<INPUT TYPE=\"hidden\" name=\"MAX_FILE_SIZE\" value=\"" . $my_max_file_size . "\">";
print "\n<INPUT TYPE=\"hidden\" name=\"task\" value=\"upload\">";
print "\n<P>".translate("<b>Uploadez vos fichiers</b>")."";
print "\n<BR>IMPORTANT : ".translate("La taille maximal des fichiers est de")." " . ($my_max_file_size / 1024) . "KB";
print "\n<br><INPUT NAME=\"the_file\" TYPE=\"file\" SIZE=\"35\"><br>";
print "\n<input type=\"submit\" Value=\"Uploader\">";
print "\n</form>";
} // fin du formulaire
if (!ereg("^4",phpversion())) {
function in_array($needle,$haystack) {
for ($i=0; $i < count($haystack); $i++) {
if ($haystack[$i] == $needle) {
return true;
}
}
}
}
function validate_upload($the_file) {
global $my_max_file_size, $image_max_width, $image_max_height,$allowed_types,$the_file_type,$registered_types;
$start_error = "\n<b>Erreur !</b>\n<ul>";
if ($the_file == "Pas de fichiers") { // verification du contenu du dossier
$error .= "\n<li>Vous n'avez rien uploadé</li>";
} else { // on verifie si le fichier est dans la liste des fichiers admissibles
if (!in_array($the_file_type,$allowed_types)) {
$error .= "\n<li>Le fichier que vous tentez d\'uploader n'est pas un fichier conforme aux fichiers admissibles:\n<ul>";
while ($type = current($allowed_types)) {
$error .= "\n<li>" . $registered_types[$type] . " (" . $type . ")</li>";
next($allowed_types);
}
$error .= "\n</ul>";
}
if (ereg("image",$the_file_type) && (in_array($the_file_type,$allowed_types))) {
$size = GetImageSize($the_file);
list($foo,$width,$bar,$height) = explode("\"",$size[3]);
if ($width > $image_max_width) {
$error .= "\n<li>Votre image ne devrait pas être plus large que " . $image_max_width . " Pixels</li>";
}
if ($height > $image_max_height) {
$error .= "\n<li>Votre image ne devrait pas être plus grande que " . $image_max_height . " Pixels</li>";
}
}
if ($error) {
$error = $start_error . $error . "\n</ul>";
return $error;
} else {
return false;
}
}
}
function list_files() {
global $the_path;
$handle = dir($the_path);
print "\n<b>Les fichiers uploadés : <i></b>(pensez à copier l'adresse de votre fichier !)</i><br>";
while ($file = $handle->read()) {
if (($file != ".") && ($file != "..")) {
//////////////////////// PENSEZ À REMPLACER "http://mike.duarte.free.fr/upload/" PAR L'URL DE VOTRE SITE ! ////////////////////////
print "<a href='http://zoy.is.boss.free.fr/". $the_path ."". $file ."'>". $file ."</a><br>";
}
}
print "<hr></ br><center><b>Uploader un autre fichier</b></center>";
}
function upload($the_file) {
global $the_path,$the_file_name;
$error = validate_upload($the_file);
if ($error) {
form($error);
} else { // on charge le fichier
if (!@copy($the_file, $the_path . "/" . $the_file_name)) {
form("\n<b>Chargement ...</b>");
} else {
list_files();
form();
}
}
} // fin de l'upload
// page de début
print "<html>\n<head>\n<title>Exemple d'upload</title>\n</head>\n<body>";
echo("<table width=\"0%\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\" align=\"center\">
<tr align=\"left\">
<td><font face=verdana size=2>");
switch($task) {
case 'upload':
upload($the_file);
break;
default:
form();
}
echo("</font></td>
</tr>
</table>");
print "\n</body>\n</html>";
?>