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 ! ;-)
A voir également:
- Uploader une image dans un dossier précédent
- Dossier appdata - Guide
- Impossible de supprimer un dossier - Guide
- Mettre un mot de passe sur un dossier - Guide
- Légender une image - Guide
- Image iso - Guide
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>';
}
// 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
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 :
(car mon répertoire c'est i)
c'est là même chose que :
non ?
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 ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Lorsque mon code est comme ça :
L'image ne s'enregistre toujours par dans le bon dossier.
Et quand je configure mon répertoire comme ça :
Le message d'erreur s'affiche : Le dossier d'upload n'existe pas ou plus.
<?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.
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 :
Que veut-il dire ?
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 ?
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 !