par
sasuke » 06 juil. 2005, 11:47
J'ai le même problème, et ca fait plusieurs jours que je ne trouve pas la solution
Si l'image ne remplit pas l'un des critère (taille, format) ou que le repertoire de destination est mauvais, il m'affiche bien l'erreur etc.
Le problème c'est justement quand tout est ok, l'image ne s'upload pas :s
<?php
if(isset($_FILES['image']))
{
// paramètres
unset($erreur);
$extensions_ok = array('png', 'gif', 'jpg', 'jpeg', 'JPG');
$taille_max = 200000;
$dest_dossier = '../images/dessins/pics/';
// utilisez également des slashes sous windows : $dest_dossier = 'd:/damien/photos/';
$taille = $_FILES['image']['size'];
// vérifications
if( !in_array( substr(strrchr($_FILES['image']['name'], '.'), 1), $extensions_ok ) )
{
$erreur = 'Veuillez sélectionner une image de type png, gif, jpg, jpeg ou JPG ;)';
}
elseif (!is_dir($dest_dossier)) {
$erreur = 'Veuillez indiquer un répertoire destination correct !';
}
elseif (!is_writeable($dest_dossier)) {
$erreur = 'Veuillez spécifier des droits en écriture pour le répertoire destination !';
}
elseif ($taille > $taille_max) {
$erreur = 'Votre image doit faire moins de 200Ko !';
}
// copie du fichier
if(!isset($erreur))
{
$dest_fichier = basename($_FILES['image']['name']);
// formatage nom fichier
// enlever les accents
$dest_fichier = strtr($dest_fichier,
'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ',
'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
// remplacer les caracteres autres que lettres, chiffres et point par _
$dest_fichier = preg_replace('/([^.a-z0-9]+)/i', '_', $dest_fichier);
// copie du fichier et verification
if (is_uploaded_file($_FILES['fichier']['tmp_name'])) {
$upload = move_uploaded_file($_FILES['image']['tmp_name'], '$dest_dossier' . ']dest_fichier');
$reussi = 'L\'image a été uploadée avec succes'; }
elseif (!is_uploaded_file($_FILES['fichier']['tmp_name'])) {
$erreur = 'L\'image n\'a pas été uploadée';
}
}
}
?>
<!-- Erreur ? -->
<div class="en-tete"><div class="img_en-tete"></div>
<?php
if(isset($erreur)){
echo $erreur ;
}
elseif(isset($reussi)){
echo $reussi ;
}
else{
?>
Avant d'ajouter une image, tenez compte des conditions suivantes :<br />
- Le nom de l'image, et le nom de la miniature doivent être identiques, ainsi que leurs extensions (attention aux majuscules).<br />
- L'image peut être en portrait ou paysage, peut être de n'importe quelle taille, mais DOIT être inférieure à 200ko.<br />
- La miniature DOIT être en paysage (plus jolie), peut-etre de n'importe quelle taille (elle sera automatiquement générée à la bonne taille), et DOIT être inférieure à 200ko.<br />
<br />
ps: Si l'image est en paysage, alors vous pouvez la rajouter en tant que miniature ;)
<?php } ?>
</div><br />
<!-- Formulaire -->
<!-- Attention, ne de ne pas oublier le enctype="multipart/form-data" -->
<form method="POST" action="index.php?page=ajout_image" enctype="multipart/form-data">
<!-- Limiter la taille des fichiers à 200Ko -->
<input type="hidden" name="MAX_FILE_SIZE" value="200000" />
<fieldset>
<legend>Envoi d'une image et de sa miniature^^</legend>
<!-- champs d'envoi de fichier, de type file -->
<p><label for="image">Image :</label><input type="file" name="image" /></p>
<p><label for="miniature">Miniature :</label><input type="file" name="miniature" /></p>
<!-- bouton d'envoi -->
<p><input type="submit" name="envoi" value="Envoyer les fichiers" /></p>
</legend>
</fieldset>
</form>
Si tout est bon, alors j'ai l'erreur "l'image n'a pas été uploadée".
Donc l'image n'est pas copié dans le repertoire de destination, car elle ne remplit pas la condition d'avoir été uploadée dans le fichier temporaire? (je demande car jsuis pas un pro --"). Je ne sais plus quoi essayer
Plz aidez moi

J'ai le même problème, et ca fait plusieurs jours que je ne trouve pas la solution :cry:
Si l'image ne remplit pas l'un des critère (taille, format) ou que le repertoire de destination est mauvais, il m'affiche bien l'erreur etc.
Le problème c'est justement quand tout est ok, l'image ne s'upload pas :s
[php]
<?php
if(isset($_FILES['image']))
{
// paramètres
unset($erreur);
$extensions_ok = array('png', 'gif', 'jpg', 'jpeg', 'JPG');
$taille_max = 200000;
$dest_dossier = '../images/dessins/pics/';
// utilisez également des slashes sous windows : $dest_dossier = 'd:/damien/photos/';
$taille = $_FILES['image']['size'];
// vérifications
if( !in_array( substr(strrchr($_FILES['image']['name'], '.'), 1), $extensions_ok ) )
{
$erreur = 'Veuillez sélectionner une image de type png, gif, jpg, jpeg ou JPG ;)';
}
elseif (!is_dir($dest_dossier)) {
$erreur = 'Veuillez indiquer un répertoire destination correct !';
}
elseif (!is_writeable($dest_dossier)) {
$erreur = 'Veuillez spécifier des droits en écriture pour le répertoire destination !';
}
elseif ($taille > $taille_max) {
$erreur = 'Votre image doit faire moins de 200Ko !';
}
// copie du fichier
if(!isset($erreur))
{
$dest_fichier = basename($_FILES['image']['name']);
// formatage nom fichier
// enlever les accents
$dest_fichier = strtr($dest_fichier,
'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ',
'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
// remplacer les caracteres autres que lettres, chiffres et point par _
$dest_fichier = preg_replace('/([^.a-z0-9]+)/i', '_', $dest_fichier);
// copie du fichier et verification
if (is_uploaded_file($_FILES['fichier']['tmp_name'])) {
$upload = move_uploaded_file($_FILES['image']['tmp_name'], '$dest_dossier' . ']dest_fichier');
$reussi = 'L\'image a été uploadée avec succes'; }
elseif (!is_uploaded_file($_FILES['fichier']['tmp_name'])) {
$erreur = 'L\'image n\'a pas été uploadée';
}
}
}
?>
<!-- Erreur ? -->
<div class="en-tete"><div class="img_en-tete"></div>
<?php
if(isset($erreur)){
echo $erreur ;
}
elseif(isset($reussi)){
echo $reussi ;
}
else{
?>
Avant d'ajouter une image, tenez compte des conditions suivantes :<br />
- Le nom de l'image, et le nom de la miniature doivent être identiques, ainsi que leurs extensions (attention aux majuscules).<br />
- L'image peut être en portrait ou paysage, peut être de n'importe quelle taille, mais DOIT être inférieure à 200ko.<br />
- La miniature DOIT être en paysage (plus jolie), peut-etre de n'importe quelle taille (elle sera automatiquement générée à la bonne taille), et DOIT être inférieure à 200ko.<br />
<br />
ps: Si l'image est en paysage, alors vous pouvez la rajouter en tant que miniature ;)
<?php } ?>
</div><br />
<!-- Formulaire -->
<!-- Attention, ne de ne pas oublier le enctype="multipart/form-data" -->
<form method="POST" action="index.php?page=ajout_image" enctype="multipart/form-data">
<!-- Limiter la taille des fichiers à 200Ko -->
<input type="hidden" name="MAX_FILE_SIZE" value="200000" />
<fieldset>
<legend>Envoi d'une image et de sa miniature^^</legend>
<!-- champs d'envoi de fichier, de type file -->
<p><label for="image">Image :</label><input type="file" name="image" /></p>
<p><label for="miniature">Miniature :</label><input type="file" name="miniature" /></p>
<!-- bouton d'envoi -->
<p><input type="submit" name="envoi" value="Envoyer les fichiers" /></p>
</legend>
</fieldset>
</form>
[/php]
Si tout est bon, alors j'ai l'erreur "l'image n'a pas été uploadée".
Donc l'image n'est pas copié dans le repertoire de destination, car elle ne remplit pas la condition d'avoir été uploadée dans le fichier temporaire? (je demande car jsuis pas un pro --"). Je ne sais plus quoi essayer
Plz aidez moi :cry: