Script hébergement d'image qui ne marche pas

Résolu
xMen71710 -  
Zep3k!GnO Messages postés 2025 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

J'ai pris un script d'hebergement d'image, que j'ai modifié, j'ai rajouter les extensions: BMP et ICO, mais voila, ces deux extensions ne fonctionnent pas, voici mon script:

(je met que le PHP)

<?php
$poids_max = 5000000; // Poids max de l'image en octets (1Ko = 1024 octets)
$repertoire = 'uploads/'; // 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/ico') {
$erreur = 'Le fichier doit être au format *.jpeg, *.gif, *.png, *.bmp ou *.ico .';
}

// On vérifit le poids de l'image
elseif ($_FILES['fichier']['size'] > $poids_max)
{
$erreur = 'L\'image doit être inférieur à ' . $poids_max/5000 . 'Ko.';
}

// On vérifit si le répertoire d'upload existe
elseif (!file_exists($repertoire))
{
$erreur = 'Erreur, le dossier d\'upload n\'existe pas.';
}

// Si il y a une erreur on l'affiche sinon on peut uploader
if(isset($erreur))
{
echo '' . $erreur . '<br><a href="javascript:history.back(1)">Retour</a>';
}
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'; }
if ($_FILES['fichier']['type'] == 'image/bmp') { $extention = '.bmp'; }
if ($_FILES['fichier']['type'] == 'image/ico') { $extention = '.ico'; }
$nom_fichier = time().$extention;

// On upload le fichier sur le serveur.
if (move_uploaded_file($_FILES['fichier']['tmp_name'], $repertoire.$nom_fichier))
{
$url = 'http://localhost/upload/'.$repertoire.''.$nom_fichier.'';
echo 'Votre image à été uploadée sur le serveur avec succes!<br>Voici le lien: <input type="text" value="' . $url . '" size="60"><br>Pour mettre l\'image sur un forum, utilisez: <input type="text" value="[img]' . $url . '/img" size="60"><br>Pour mettre votre image sur votre site, utilisez: <input type="text" value="<img scr=' . $url . '>" size="60">';
}
else
{
echo 'L\'image n\'a pas pu être uploadée sur le serveur.';
}

}

}
else
{
?>

Merci
A voir également:

5 réponses

Zep3k!GnO Messages postés 2025 Date d'inscription   Statut Membre Dernière intervention   200
 
quand tu upload, un .ico ou .bmp, t'as fais un echo "Type de fichier : ".$_FILES['fichier']['type']; ??
Ca peut p'tet venir de la...
0
xMen71710
 
Désolé, mais je ne vois pas ce que tu veux dire par là.

Mais en fait, j'ai oublié de dire qqc, le message d'erreur qui vient c'est sa:
Le fichier doit être au format *.jpeg, *.gif, *.png, *.bmp ou *.ico .

Alors qu'il est ICO où BMP.

Mais je ne vois pas du tout d'où ca peux venir.
0
Zep3k!GnO Messages postés 2025 Date d'inscription   Statut Membre Dernière intervention   200
 
Ouaip en fait ce que je veux c'est savoir ce que t'affiches PhP.
La en me disant ça, ça veut dire que ça en passe pas le test du type de fichier donc il y a un probleme avec la conditin que tu a rajoutée, pour débugger ça, remplace le bout de code
// 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/ico') {
$erreur = 'Le fichier doit être au format *.jpeg, *.gif, *.png, *.bmp ou *.ico .';
}

PAR

// 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/ico') {
$erreur = 'Le fichier doit être au format *.jpeg, *.gif, *.png, *.bmp ou *.ico . (on a reçu : '. $_FILES['fichier']['type'].')';
}

Et dis ce que ça affiches...
0
xMen71710
 
Pour les fichiers en .ico, cela m'affiche:
Le fichier doit �tre au format *.jpeg, *.gif, *.png, *.bmp ou *.ico . (on a re�u : image/x-icon)

Mais je crois savoir pourquoi cela met sa. En fait, les .ico, sa changera le favicon (par exemple le point d'interrogation blanc sur la bulle rouge a coté de l'adresse de https://www.commentcamarche.net/

Merci encore !
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Zep3k!GnO Messages postés 2025 Date d'inscription   Statut Membre Dernière intervention   200
 
En fait faut que tu changes les fois ou t'as mis

$_FILES['fichier']['type'] != 'image/ico'

PAR

$_FILES['fichier']['type'] != 'image/x-icon'

Ca marchera pour les .ico après..
0