1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77
| <?php
if (!is_dir(uploads))
{
mkdir('uploads', 0777, true);
}
else
{
if ($_FILES['mon_fichier']['error'] > 0)
{
$erreur = 'Erreur lors du transfert';
}
else
{
$titre = htmlspecialchars($_POST['titre']);
$maxsize = 2097152;
if ($_FILES['mon_fichier']['size'] > $maxsize)
{
$erreur = 'Le fichier est trop gros';
}
else
{
$extensions_valides = array('jpg','jpeg','gif','png', 'doc', 'pdf', 'exe', 'zip', 'xls', 'ppt', 'mp3', 'wav', 'mpeg', 'mpg', 'mpe', 'mpe', 'mov', 'avi');
//1. strrchr renvoie l'extension avec le point (« . »).
//2. substr(chaine,1) ignore le premier caractère de chaine.
//3. strtolower met l'extension en minuscules.
$extension_upload = strtolower( substr( strrchr($_FILES['mon_fichier']['name'], '.'),1));
if (in_array($extension_upload,$extensions_valides))
{
$nom_fichier = $_FILES['mon_fichier']['name'];
$nom_crypte = md5(uniqid(rand($nom_fichier), true));
$nom_absolu = 'uploads/'.$nom_crypte.'';
$resultat = move_uploaded_file($_FILES['mon_fichier']['tmp_name'],$nom_absolu);
{
// ON REALISE LA CONNEXION A LA BASE DE DONNEE
try
{
$pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
$bdd = new PDO('mysql:host=localhost;dbname=test', 'root', '', $pdo_options);
}
catch (Exception $e)
{
die('Erreur : ' . $e->getMessage());
}
// ON INSERE LES un id, le nom(hache et unique), le titre(remplis dans le formulaire et la taille du fichier DANS LA BASE DE DONNEE
$ajout_fichier = $bdd->prepare('INSERT INTO telechargement(nom_fichier, nom, titre, taille, extension, date_fichier) VALUES (:nom_fichier, :nom, :titre, :taille, :extension, NOW())');
$ajout_fichier->execute(array(
'nom_fichier' => $nom_fichier,
'nom' => $nom_crypte,
'titre' => $titre,
'extension' => $extension_upload,
'taille' => $_FILES['mon_fichier']['size']
)
) or die (print_r($ajout_billet->errorInfo()));
header('Location: download.php');
}
else
{
echo 'Echec du transfert';
}
}
else
{
echo 'Extension incorect,';
}
}
}
}
?> |
Partager