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 17 juin 2019 - Semaine 25 - Saint Hervé (Demain: Saint Léonce)
Aujourd'hui, c'est l'anniversaire de Lio (1962-57 ans), chanteuse et actrice belgo-portugaise francophone.
Haut de page Easy-Micro