Easy-Micro


LANGAGE Langage PHP
Upload PHP

Manipulation de fichiers en Upload

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.

Prérequis : les formulaires en HTML

Exemple de téléchargement de fichier (une photo)
Nécessite 2 fichiers: index.html et upload.php :

Le fichier index.html
<html><head></head>
<body>
<form action="upload.php" method="post" enctype="multipart/form-data">
<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 ci-dessus)
<?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."' />";

Note sur ce script:
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/';

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" de ci-dessus)

$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 "NOT IN THE BOX :-("; }

Note: "photo_client" et "id_client" sont les noms des champs de la table. Plus d'exemple entre PHP et MySQL dans l'espace Membre Easy-Micro.


Suivez les aventures des skippers aquitains sur EasyVoile.com
Flux RSS Easy-Micro - Abonnez-vous Easy-Micro [ François Bisch ]
Lundi 18 mars 2019 - Semaine 12 - Saint Cyrille de Jérusalem (Demain: Saint Joseph)
Aujourd'hui, c'est l'anniversaire de Luc Besson (1959-60 ans), réalisateur et producteur français, de Xavier Deluc (1958), acteur français et de Laetitia Hallyday (1975). Autre 18 mars: 1314 : supplice de Jacques de Molay, grand maître des Templiers.
Haut de page Easy-Micro