Uploader une image dans un dossier précédent
nik029
Messages postés
315
Statut
Membre
-
nik029 Messages postés 315 Statut Membre -
nik029 Messages postés 315 Statut Membre -
Bonjour,
J'aimerais uploader une image, depuis un script PHP, et que cette image soit enregistré 3 dossiers avant la page d'upload.
Problème, cette image ne s'enregistre pas dans le dossier répertoire (qui est le dossier i/).
Voici mon script :
Merci d'avance
Une fois un problème résolu, mettez un +1 sur la réponse qui vous à aidez et mettez Problème Résolu ! ;-)
J'aimerais uploader une image, depuis un script PHP, et que cette image soit enregistré 3 dossiers avant la page d'upload.
Problème, cette image ne s'enregistre pas dans le dossier répertoire (qui est le dossier i/).
Voici mon script :
<?php
$poids_max = 100000; // Poids max de l'image en octets (1Ko = 1024 octets)
$repertoire = '../../../i'; // Repertoire d'upload
if (isset($_FILES['fichier']))
{
// On vérifit le type du fichier
if ($_FILES['fichier']['type'] != 'image/png' && $_FILES['fichier']['type'] != 'image/jpeg' && $_FILES['fichier']['type'] != 'image/jpg' && $_FILES['fichier']['type'] != 'image/gif' && $_FILES['fichier']['type'] != 'image/bmp' && $_FILES['fichier']['type'] != 'image/jpg' && $_FILES['fichier']['type'] != 'image/png' && $_FILES['fichier']['type'] != 'image/ico')
{
$erreur = '<div class="alert alert-error"><p>Le fichier doit être au format *.jpeg, *.bmp, *.jpg, *.png, *.ico *.gif ou *.png .</p></div>';
}
// On vérifit le poids de l'image
elseif ($_FILES['fichier']['size'] > $poids_max)
{
$erreur = '<div class="alert alert-error"><p>Votre image est trop lourde.</p></div>';
}
// On vérifit si le répertoire d'upload existe
elseif (!file_exists($repertoire))
{
$erreur = '<div class="alert alert-error"><p><strong>Oops !</strong> Le dossier d\'upload n\'existe pas ou plus.</p></div>';
}
// Si il y a une erreur on l'affiche sinon on peut uploader
if(isset($erreur))
{
echo '' . $erreur . '';
}
else
{
// On définit l'extention du fichier puis on le nomme par le timestamp actuel
if ($_FILES['fichier']['type'] == 'image/jpeg') { $extention = '.jpeg'; }
if ($_FILES['fichier']['type'] == 'image/jpeg') { $extention = '.jpg'; }
if ($_FILES['fichier']['type'] == 'image/png') { $extention = '.png'; }
if ($_FILES['fichier']['type'] == 'image/gif') { $extention = '.gif'; }
$nom_fichier = time().$extention;
// On upload le fichier sur le serveur.
if (move_uploaded_file($_FILES['fichier']['tmp_name'], $nom_fichier))
{
$url = 'http://site.hebergeur.com/i/'.$nom_fichier.'';
}
else
{
echo '<div class="alert alert-error"><p><strong>Oops !</strong> L\'image n\'a pas pu être uploader sur le serveur...</p></div>';
}
}
}
else
{
}
?>
Merci d'avance
Une fois un problème résolu, mettez un +1 sur la réponse qui vous à aidez et mettez Problème Résolu ! ;-)
16 réponses
-
Enlève la vérif :
// On vérifit si le répertoire d'upload existe
elseif (!file_exists($repertoire))
{
$erreur = '<div class="alert alert-error"><p><strong>Oops !</strong> Le dossier d\'upload n\'existe pas ou plus.</p></div>';
}
Ensuite essaye ca :
// On upload le fichier sur le serveur.
if (move_uploaded_file($_FILES['fichier']['tmp_name'],$repertoire.'/'.$nom_fichier))
{
$url = 'http://site.hebergeur.com/'.$repertoire.'/'.$nom_fichier.'';
}
else
{
echo '<div class="alert alert-error"><p><strong>Oops !</strong> L\'image n\'a pas pu être uploader sur le serveur...</p></div>';
}
-
Salut !
J'espère ne pas dire de connerie en disant que :
../ dépend de ton serveur, il faut vérifié si ca fonctionne, et si tu as les droits pour remonter dans le dossier parent.
Sinon, je pense avoir trouvé :
$nom_fichier = time().$extention;
// On upload le fichier sur le serveur.
if (move_uploaded_file($_FILES['fichier']['tmp_name'], $nom_fichier))
{
$url = 'http://site.hebergeur.com/i/'.$nom_fichier.'';
}
Tu n'utilises pas ton $repertoire ... Donc c'est un peu normal que ton image ne va pas la où tu le souhaite si tu ne lui dit pas d'y aller.
Et puis derniere chose, je ne pense que vérifier si le dossier d'upload existe soit judicieux, car dans le move_uploaded_file si le dossier n'existe pas il le cré automatiquement il me semble
-
Oui mais si je met genre :
if (move_uploaded_file($_FILES['fichier']['tmp_name'], $nom_fichier)) { $url = 'http://site.hebergeur.com/'.$repertoire.'/'.$nom_fichier.''; }
(car mon répertoire c'est i)
c'est là même chose que :
if (move_uploaded_file($_FILES['fichier']['tmp_name'], $nom_fichier)) { $url = 'http://site.hebergeur.com/i/'.$nom_fichier.''; }
non ?
-
Mais il faut tu le précise dans la fonction move_uploaded_file !
-
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
Lorsque mon code est comme ça :
<?php $poids_max = 100000; // Poids max de l'image en octets (1Ko = 1024 octets) $repertoire = '../../../i'; // Repertoire d'upload if (isset($_FILES['fichier'])) { // On vérifit le type du fichier if ($_FILES['fichier']['type'] != 'image/png' && $_FILES['fichier']['type'] != 'image/jpeg' && $_FILES['fichier']['type'] != 'image/jpg' && $_FILES['fichier']['type'] != 'image/gif' && $_FILES['fichier']['type'] != 'image/bmp' && $_FILES['fichier']['type'] != 'image/jpg' && $_FILES['fichier']['type'] != 'image/png' && $_FILES['fichier']['type'] != 'image/ico') { $erreur = '<div class="alert alert-error"><p>Le fichier doit être au format *.jpeg, *.bmp, *.jpg, *.png, *.ico *.gif ou *.png .</p></div>'; } // On vérifit le poids de l'image elseif ($_FILES['fichier']['size'] > $poids_max) { $erreur = '<div class="alert alert-error"><p>Votre image est trop lourde.</p></div>'; } // On vérifit si le répertoire d'upload existe elseif (!file_exists($repertoire)) { $erreur = '<div class="alert alert-error"><p><strong>Oops !</strong> Le dossier d\'upload n\'existe pas ou plus.</p></div>'; } // Si il y a une erreur on l'affiche sinon on peut uploader if(isset($erreur)) { echo '' . $erreur . ''; } else { // On définit l'extention du fichier puis on le nomme par le timestamp actuel if ($_FILES['fichier']['type'] == 'image/jpeg') { $extention = '.jpeg'; } if ($_FILES['fichier']['type'] == 'image/jpeg') { $extention = '.jpg'; } if ($_FILES['fichier']['type'] == 'image/png') { $extention = '.png'; } if ($_FILES['fichier']['type'] == 'image/gif') { $extention = '.gif'; } $nom_fichier = time().$extention; // On upload le fichier sur le serveur. if (move_uploaded_file($_FILES['fichier']['tmp_name'], $nom_fichier)) { $url = 'http://site.hebergeur.com/'.$repertoire.'/'.$nom_fichier.''; } else { echo '<div class="alert alert-error"><p><strong>Oops !</strong> L\'image n\'a pas pu être uploader sur le serveur...</p></div>'; } } } else { } ?>
L'image ne s'enregistre toujours par dans le bon dossier.
Et quand je configure mon répertoire comme ça :
$repertoire = 'i'; // Repertoire d'upload
Le message d'erreur s'affiche : Le dossier d'upload n'existe pas ou plus.
-
Cette fois, l'image va bien s'enregistrer dans le dossier indiqué ! Merci beaucoup de ton aide ! :)
-
Le répertoire est à préciser dans la fonction, ne l'oublie pas ;-) Et s'il n'existe pas il est créé donc pas besoin de vérifier.
-
Depuis quelques heures, j'ai ce message d'erreur qui s'affiche :
Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move '/tmp/phpeRLdL4' to 'i/1368894103.png' in /home/a3389209/public_html/e/config/index.php on line 47
Que veut-il dire ?
-
-
-
-
Non justement, c'est pour ça que je comprends pas...
A part le répertoire qui est devenu : '../i''
-
Bah c'est surement ca ;-) Regarde le chemin si c'est le bon ! Il faut un chemin relatif, donc met toi dans le dossier de ton fichier php et regarde où est le dossier où tu veux mettre l'image !
-
-
Essaye de voir avec realpath() de tes deux fichiers
Fais un realpath('dossier où tu veux uploadé'); et un realpath('fichier qui execute le code php');
-
Donc je dois faire
$repertoire = realpath('../i'); // Repertoire d'upload
C'est bien ça ?