<?php
include('./config.php');
if(!$_POST)
{
?>
<b>Uploadez un fichier</b>
<form action="" enctype="multipart/form-data" method="post" name="post" onsubmit="return checkForm(this)">
Votre fichier : <input type="file" name="fichier" tabindex="1" size="40" /> <input type="submit" accesskey="s" tabindex="2" name="envoyer" value="Ok" />
</form>
<?php
}else{
if(isset($_FILES['fichier']['tmp_name']) && isset($_FILES['fichier']['name']) && $_FILES['fichier']['name'] != '')
{
$tmp_file = $_FILES['fichier']['tmp_name'];
$erreurs = '';
//on test si l'upload a reussi
if(!is_uploaded_file($tmp_file))
exit('Une erreurs est survenu lors de l\'upload !');
// on vérifie maintenant l'extension
$type_file = $_FILES['fichier']['type'];
if(empty($type_file))
exit("Extension non valide");
if(empty($_FILES['fichier']['name']))
exit("Nom de fichier trop court");
// on copie le fichier dans le dossier de destination
$name_file = md5(mktime()).'_'.clean_file_name($_FILES['fichier']['name']);
//on verifie que le fichier ne contient pas trop de sales caracteres
if(preg_match('#[\x00-\x1F\x7F-\x9F/\\\\]#', $name_file))
exit("Nom de fichier non valide");
//on bouge le fichier du repertoire temporaire a notre repertoire cache
if(!move_uploaded_file($tmp_file, $_rep_secret . '/' . $name_file))
exit("Impossible de copier le fichier");
else
{
$date = mktime();
$ip = $_SERVER['REMOTE_ADDR'];
$requete = "INSERT INTO $_sqltable SET file='$name_file', ip='$ip', date='$date'";
if(mysql_query($requete))
{
// ok, on a mis le fichier dans la base. On recupere le dernier Identifiant et on affiche les liens et autre infos selon l'extension du fichier.
$last_id = mysql_insert_id();
$ext = get_file_ext($name_file);
//si c'est une image avec une extension valide :
$miniature = '';
if($_array_extok[$ext] == $ext && !empty($ext) && valide_img($_rep_secret.'/'.$name_file))
if($_urlrewriting == 1)
$miniature = '<p>Le lien pour voir l\'image est : <a href="'.$_votre_site.'/'.$_rep_myphpupoload.'/voir_'.$last_id.'.'.$ext.'">'.$_votre_site.'/'.$_rep_myphpupoload.'/voir_'.$last_id.'.'.$ext.'</a></p>';
else
$miniature = '<p>Le lien pour voir l\'image est : <a href="'.$_votre_site.'/'.$_rep_myphpupoload.'/view.php?id='.$last_id.'">'.$_votre_site.'/'.$_rep_myphpupoload.'/view.php?id='.$last_id.'</a></p>';
// lien pour telecharger :
if($_urlrewriting == 1)
$download = '<p>Le lien pour télécharger le fichier est : <a href="'.$_votre_site.'/'.$_rep_myphpupoload.'/dld_'.$last_id.'">'.$_votre_site.'/'.$_rep_myphpupoload.'/dld_'.$last_id.'</a></p>';
else
$download = '<p>Le lien pour télécharger le fichier est : <a href="'.$_votre_site.'/'.$_rep_myphpupoload.'/dld.php?id='.$last_id.'">'.$_votre_site.'/'.$_rep_myphpupoload.'/dld.php?id='.$last_id.'</a></p>';
echo '
<p>Upload réussi !</p>
'.$download.'
'.$miniature.'
<p><a href="./">retour</a></p>';
}
else
echo 'Une erreurs est survenu lors de la requete MySQL ...';
}
}
}
?>
<?php
include('./config.php');
$id = (int)$_GET['id'];
$requete = "SELECT * FROM $_sqltable WHERE id='$id'";
$sql = mysql_query($requete);
$nbr = mysql_num_rows($sql);
if($nbr == 0)
exit('Fichier invalide');
else
{
$post = mysql_fetch_array($sql);
$fichier = $post['file'];
}
$fichier = htmlentities(str_replace('./','',$fichier), ENT_QUOTES);
$urlFichier = $_rep_secret.'/'.$fichier;
// on verifie que y'a pas trop de mauvaise chose dans le nom de fichier ... au cas ou !
if(eregi('\.\./',$fichier))
exit;
if($fichier=="/")
exit;
// le nom de fichier
$filename = substr($fichier,30);
switch(strrchr(basename($fichier), ".")) {
case ".gz": $type = "application/x-gzip"; break;
case ".tgz": $type = "application/x-gzip"; break;
case ".zip": $type = "application/zip"; break;
case ".pdf": $type = "application/pdf"; break;
case ".psd": $type = "application/psd"; break;
case ".eps": $type = "application/eps"; break;
case ".png": $type = "image/png"; break;
case ".gif": $type = "image/gif"; break;
case ".jpg": $type = "image/jpeg"; break;
case ".txt": $type = "text/plain"; break;
case ".htm": $type = "text/html"; break;
case ".html": $type = "text/html"; break;
default: $type = "application/octet-stream"; break;
}
header("Content-disposition: attachment; filename=".$filename);
header("Content-Type: application/force-download");
header("Content-Transfer-Encoding: $type\n");
header("Content-Length: ".filesize($urlFichier));
header("Pragma: no-cache");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0, public");
header("Expires: 0");
readfile($urlFichier);
exit();
?>
<?php
/* par Gunning sky */
/* www.graphiks.net */
/* septembre 2007 */
// connexion MySQL
$hoste = 'localhost';
$usere = 'Utilisateur';
$passe = 'MotDePasse';
$dbe = 'NomDeLaBase';
mysql_connect($hoste,$usere,$passe) or die ('Erreur : '.mysql_error());
mysql_select_db($dbe) or die ('Erreur :'.mysql_error());
// quelques variables a changer selon vos besoins
// celui est ABSOLUMENT a changer. Je vous conseil un nom de repertoire vraiment complexe genre : 4578gopidsfsfq
$_rep_secret = '';
$_rep_secret = 'dossier_a_fichiers';
$_votre_site = 'http://www.votresite.com';
$_rep_myphpupoload = 'myPHPupload';
$_sqltable = 'myphpupload';
$_urlrewriting = 1;
$_img_maxlargeur = 700;
$_array_extok = array('jpg'=>'jpg', 'jpeg'=>'jpeg', 'gif'=>'gif', 'png'=>'png');
// et quelques fonctions sympa
function get_file_ext($file)
{
$ext = substr(strtolower(strrchr(basename($file), ".")), 1);
return $ext;
}
function valide_img($file)
{
list($width, $height, $type, $attr) = getimagesize($file);
if($width > 0 && $height > 0)
return true;
else
return false;
}
function clean_file_name($var)
{
$var=strtr($var,"ÀÁÂÃÄÅàáâãäåÒÓÔÕÖØòóôõöøÈÉÊËéèêëÇçÌÍÎÏìíîïÙÚÛÜùúûüÿÑñ","AAAAAAaaaaaaOOOOOOooooooEEEEeeeeCcIIIIiiiiUUUUuuuuyNn");
$var=strtolower($var);
$var=str_replace("'","_",$var);
$var=str_replace("\"","_",$var);
$var=str_replace(" ","_",$var);
$var=str_replace("__","_",$var);
$var=str_replace("__","_",$var);
$var=eregi_replace("[^a-z0-9\_\-\.]","",$var);
$var = rtrim($var,'_');
$var = ltrim($var,'_');
return $var;
}
?>
<?php
include('./config.php');
$id = (int)$_GET['id'];
$requete = "SELECT * FROM $_sqltable WHERE id='$id'";
$sql = mysql_query($requete);
$nbr = mysql_num_rows($sql);
if($nbr == 0)
exit('Fichier invalide');
else
{
$post = mysql_fetch_array($sql);
$fichier = $post['file'];
}
$fichier = htmlentities(str_replace('./','',$fichier), ENT_QUOTES);
$ext = get_file_ext($fichier);
switch($ext)
{
case 'jpg':
case 'jpeg':
header('Content-type:image/jpg');
if(!file_exists($_rep_secret.'/tmp_'.$fichier))
{
$image = $_rep_secret.'/'.$fichier;
$src_im = ImageCreateFromJpeg($image);
$size = GetImageSize($image);
$src_w = $size[0];
$src_h = $size[1];
if($src_w > $_img_maxlargeur)
{
$dst_w = $_img_maxlargeur;
$dst_h = round(($dst_w / $src_w) * $src_h);
}
else
{
$dst_w = $size[0];
$dst_h = $size[1];
}
$dst_im = ImageCreateTrueColor($dst_w,$dst_h);
ImageCopyResampled($dst_im,$src_im,0,0,0,0,$dst_w,$dst_h,$src_w,$src_h);
imageJpeg($dst_im,$_rep_secret.'/tmp_'.$fichier);
}
readfile($_rep_secret.'/tmp_'.$fichier);
exit();
break;
case 'gif':
header('Content-type:image/gif');
if(!file_exists($_rep_secret.'/tmp_'.$fichier))
{
$image = $_rep_secret.'/'.$fichier;
$src_im = ImageCreateFromGif($image);
$size = GetImageSize($image);
$src_w = $size[0];
$src_h = $size[1];
if($src_w > $_img_maxlargeur)
{
$dst_w = $_img_maxlargeur;
$dst_h = round(($dst_w / $src_w) * $src_h);
}
else
{
$dst_w = $size[0];
$dst_h = $size[1];
}
$dst_im = ImageCreateTrueColor($dst_w,$dst_h);
ImageCopyResampled($dst_im,$src_im,0,0,0,0,$dst_w,$dst_h,$src_w,$src_h);
imageGif($dst_im,$_rep_secret.'/tmp_'.$fichier);
}
readfile($_rep_secret.'/tmp_'.$fichier);
exit();
break;
case 'png':
header('Content-type:image/png');
if(!file_exists($_rep_secret.'/tmp_'.$fichier))
{
$image = $_rep_secret.'/'.$fichier;
$src_im = ImageCreateFromPng($image);
$size = GetImageSize($image);
$src_w = $size[0];
$src_h = $size[1];
if($src_w > $_img_maxlargeur)
{
$dst_w = $_img_maxlargeur;
$dst_h = round(($dst_w / $src_w) * $src_h);
}
else
{
$dst_w = $size[0];
$dst_h = $size[1];
}
$dst_im = ImageCreateTrueColor($dst_w,$dst_h);
ImageCopyResampled($dst_im,$src_im,0,0,0,0,$dst_w,$dst_h,$src_w,$src_h);
imagePng($dst_im,$_rep_secret.'/tmp_'.$fichier);
}
readfile($_rep_secret.'/tmp_'.$fichier);
exit();
break;
}
CREATE TABLE `myphpupload` (
`id` mediumint(7) NOT NULL auto_increment,
`date` int(10) NOT NULL default '0',
`file` varchar(255) NOT NULL default '',
`ip` varchar(40) NOT NULL default '',
PRIMARY KEY (`id`),
KEY `date` (`date`)
) ENGINE=MyISAM
Options +FollowSymlinks
RewriteEngine on
#generique : page accueil de chaque module
RewriteRule ^voir_([0-9]+).jpg$ view.php?id=$1 [L]
RewriteRule ^voir_([0-9]+).jpeg$ view.php?id=$1 [L]
RewriteRule ^voir_([0-9]+).gif$ view.php?id=$1 [L]
RewriteRule ^voir_([0-9]+).png$ view.php?id=$1 [L]
RewriteRule ^dld_([0-9]+)$ dld.php?id=$1 [L]


Nous - Plan du site - Informations légale - Contact - © Graphiks.net