PHP uploader image

funkeen Messages postés 232 Statut Membre -  
funkeen Messages postés 232 Statut Membre -
Bonjour,
voila un formulaire =
__________________________________________________________
<form action="up.php" method="post" enctype="multipart/form-data">
Formulaire d'envoi de fichier :<br />
<input type="file" name="monfichier" /><br />
<input type="submit" value="Envoyer" />
</form>
__________________________________________________________

vous pouvez me faire une page .php qui fera en sorte ke $_POST['monfichier'] saffiche ?

merci d'avance

A voir également:

4 réponses

Kopros Messages postés 631 Statut Membre 89
 
Est-ce que ce bout de code fait ton bonheur ?

$uploaddir = 'upload_files/'; /*Mettre ici le répertoire où vont se trouver les fichiers uploadés (chemin relatif à partir de là où se trouve cette page) */
$tmpname=$_FILES['monfichier']['tmp_name'];
$uploadfile = $uploaddir . basename($_FILES['monfichier']['name']);

if (move_uploaded_file($tmpname, $uploadfile)) {
	echo "Le fichier a été correctement ajouté au serveur.";
}
else {
	echo "Une erreur s'est produite lors du téléchargement du fichier.";
}
0
funkeen Messages postés 232 Statut Membre 5
 
si le répértoire c phpmyadmin koman je fait ?
0
avion-f16 Messages postés 20367 Statut Contributeur 4 509
 
Salut,

En PHP, il faut utiliser le tableau $_FILES pour récupérer les fichiers envoyés.
Le fichier doit être enregistré sur le serveur avant de pouvoir être affiché.

Si c'est une image, tu peux aussi indiquer son contenu encodée en base64 dans l'attribut src de la balise img.
<img src="data:image/png;base64,{fichier en base64}" />


Exemple :
<form action="" method="post" enctype="multipart/form-data">
    <input type="file" name="image" />
    <input type="submit" />
</form>

<?php
$allowed_mimes = array('image/png','image/gif','image/jpeg');

if(isset($_FILES['image'])) {
    if($_FILES['image']['erreur'] == UPLOAD_ERR_OK) {
        if(in_array($_FILES['image']['type'], $allowed_mimes)) {
            $string = file_get_contents($_FILES['image']['tmp_name']);
            $base = base64_encode($string);
            echo '<img src="data:'.$_FILES['image']['type'].';base64,'.$base.'" />';
        } else {
            echo 'Merci de choisir une image';
        }
    } else {
        echo 'Erreur lors de l\'envoie.';
    }
}
?>
0
avion-f16 Messages postés 20367 Statut Contributeur 4 509
 
Au fait, pourquoi vouloir uploader l'image dans le dossier « phpmyadmin » ?
Si tu veux stocker ton image en base de données :
- phpMyAdmin n'est qu'une interface, tes bases de données n'y sont pas stockées
- On peut stocker les fichiers en base de données, grâce au type BLOB, mais généralement on stocke les images sur le FTP et seulement le nom ou le chemin en base de données.
0
funkeen Messages postés 232 Statut Membre 5
 
et si je veux que quand le mec il upload l'image ca ne laffiche pas mais ca l'insert ( donc avec insert into jimagine) dans la table donné ? et comme ca grace a $_SESSION['nom de limage'] je pourrais mettre limage tous le temps sur son profil !

donc comment faire ?
0
funkeen Messages postés 232 Statut Membre 5
 
avion stp ???
0
Kopros Messages postés 631 Statut Membre 89
 
Ben déjà si le server est sous Linux tu vérifies que l'utilisateur www-data ait bien le droit d'écrire dans le répertoire phpmyadmin.

Ensuite ça dépend où sont placés tes fichiers. Disons qu'ils sont à ces emplacements là :
/var/www/ton_site/up.php
/var/www/phpmyadmin/

Dans up.php, il faut renseigner la première variable comme ça :
$uploaddir = '../phpmyadmin/';

Explication : on part de là où se trouve le fichier php, c'est à dire /var/www/ton_site/
Avec le ../ on remonte d'un niveau, on se trouve donc dans /var/www/
Ensuite on va dans le répertoire qu'on veut, il se situe là où on est, c'est phpmyadmin/
On se trouve bien dans /var/www/phpmyadmin/ et c'est ok.

Si jamais faut monter de 2 niveaux, faut faire ../../phpmyadmin/
0