Easy-Micro

LANGAGE Langage PHP
Upload PHP

Manipulation de fichiers en Upload

Formation PHP par Easy-Micro Variable $_FILES[]

Pour proposer le téléchargement de fichier, on utilise la variable Php prédéfinie $_FILES[] avec la fonction move_uploaded_file qui permet de transférer le fichier du répertoire temporaire vers un répertoire de destination.

Exemple de téléchargement de fichier (une photo) avec index.html et upload.php :

Le fichier index.html
<html><head></head>
<body>
<form action="upload.php" method="post">
<input type="hidden" name="max_file_size" value="50000">
<input type="file" name="monfichier">
<input type="submit" value="Envoyer">
</form>
</body></html>

Attention, exemple à tester avec des images légère (< 50 ko). Sinon, augmentez l'attribut "value" de la balise "max_file_size" (mais méfiez-vous des mauvais plaisantins :-)


Le fichier upload.php (appelé par le fichier index.html)
<?php
// Affichage d'infos facultatives
if ( isset($_FILES["monfichier"]["name"]) && $_FILES["monfichier"]["error"] <= 0) {
    echo "Nom du fichier: " . $_FILES["monfichier"]["name"] . "<br>";
    echo "Type mime: " . $_FILES["monfichier"]["type"] . "<br>";
    echo "Taille: " . ($_FILES["monfichier"]["size"] / 1024) . " Kb<br>";
}
else {
    echo "Erreur numéro: " . $_FILES["monfichier"]["error"] . "<br>";
    }

// Enregistrement du fichier
if ( (isset($_FILES['monfichier'])) && ($_FILES['monfichier']['error'] == UPLOAD_ERR_OK)) {
    $destination = "C:\Program Files\EasyPHP-5.3.3\www\stage\images\\";
    move_uploaded_file($_FILES['monfichier']['tmp_name'], $destination.$_FILES['monfichier']['name']);
	echo "Fichier ". $_FILES['monfichier']['name'] ." téléchargé avec succès.\n<br>";
}
else {
echo "Fichier NIET téléchargé !<br>";
}

// récupération des données (pour affichage)
$nom_fichier = $_FILES['monfichier']['name'];
$adresse_fichier = "images\\".$_FILES['monfichier']['name'];

// Affichage du fichier (exemple avec une image)
echo "<img src='".$adresse_fichier."'>";

Si le script affiche Erreur numéro: 2: taille de fichier trops importante, sinon voir les numéros d'erreur. Si problèmes, vérifiez dans php.ini (Configuration/PHP) les différentes directives du File Uploads. Pour une utilisation en ligne de ce script, remplacez les paramètres de la variable "$destination" par $destination = '/var/www/stage/stage/';

Formation PHP par Easy-Micro Base de donnée

Pour un stockage dans une table de base de donnée MySQL, il suffit de rajouter le code suivant au fichier "upload.php"

Stockage dans une base de donnée (suite du "upload.php")

$nom_fichier = $_FILES['monfichier']['name'];
$id_client = 2; // l'id du client est récupérée en ammont (par un $_SESSION['login'])

// on stock le nom du fichier dans la base
require_once("config/variables_sensibles.php");
$requete = "UPDATE ".$table." SET photo_client='".$nom_fichier."' WHERE id_client = '".$id_client."'";

$resultat = mysql_query($requete);
if ($resultat) {
    echo "IT'S IN THE BOX :-)";}
    else { echo "IT'S NOT IN THE BOX :-("; }
}
Note: "photo_client" et "id_client" sont les noms des champs de la table.
Flux RSS Easy-Micro - Abonnez-vous Easy-Micro [ François Bisch ]