Script hébergement d'image qui ne marche pas

Résolu/Fermé
xMen71710 - 17 févr. 2010 à 18:15
Zep3k!GnO Messages postés 2025 Date d'inscription jeudi 22 septembre 2005 Statut Membre Dernière intervention 18 novembre 2015 - 18 févr. 2010 à 11:17
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 jeudi 22 septembre 2005 Statut Membre Dernière intervention 18 novembre 2015 200
17 févr. 2010 à 18:37
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
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 jeudi 22 septembre 2005 Statut Membre Dernière intervention 18 novembre 2015 200
17 févr. 2010 à 18:53
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
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 jeudi 22 septembre 2005 Statut Membre Dernière intervention 18 novembre 2015 200
18 févr. 2010 à 11:17
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