begin process at 2008 07 21 00:28:53
1 213 530 membres
431 nouveaux aujourd'hui
14 167 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

UPLOAD D'IMAGE SIMPLE ET FONCTIONNEL


Information sur la source

Catégorie :Divers Classé sous : upload, image Niveau : Débutant Date de création : 03/06/2004 Vu / téléchargé: 21 033 / 6 325

Note :
8,08 / 10 - par 25 personnes
8,08 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (56)
Ajouter un commentaire et/ou une note

Description

Permet l'upload d'image, en choississant taille maxi, dimensions maxis, extensions valides, etc.

Conclusion

Une démo sur http://membres.lycos.fr/ceacy/upload.php3 (abusez pas non plus ;))
Si vous voulez, vous pouvez mettre les types MIME autorisés dans un tableau et faire un in_array(), si ça vous chante, pour améliorer le script :P
Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

  • signaler à un administrateur
    Commentaire de zalumetkolo le 07/06/2004 02:00:01

    Merci, je n'ai testé que la demo mais c'est exactement ce que je cherchais..

    Merci beaucoup pour ton travail..

    Zalu..

  • signaler à un administrateur
    Commentaire de ousuisje le 17/06/2004 13:23:13

    bonjour,

    ces scripts sont-ils utilisables dans un formulaire fait avec Flash MX?
    dans ce cas pourriez-vous m'expliquer comment faire le lien entre Flash-Javascript et php?

    merci

  • signaler à un administrateur
    Commentaire de ceacy le 17/06/2004 17:50:37

    Euh ... pas la moindre idée, je ne suis absolument pas versé dans Flash MX (pas de version pour linux, donc pas de flash pour moi ;))

  • signaler à un administrateur
    Commentaire de mobman02 le 01/09/2004 02:16:24

    j'ai un prob,
    sur mon serveur lycos, j'ai mis directement le scrit, et il ne veut rien uploader !
    "Copie échouée : 0"

  • signaler à un administrateur
    Commentaire de ceacy le 01/09/2004 10:56:41

    Par défaut, le script va enregistrer les fichiers uploadés dans le dossier "/avatars/" . Vérifie que ce dossier existe, et que les droits d'écriture sont activés dessus.

  • signaler à un administrateur
    Commentaire de stanilou le 02/11/2004 15:37:38

    salut
    Super ce sript!
    Je me suis dépécher de l'installer sur mon site! Seulement voila, pour les petits gif tout va bien mais pour les photos d'environ 200-300Ko, la probleme! (Je suis chez lycos)
    En fait, ça fait un long chargement (Ca je compren!) mais aprés ça revient sur la page (d'acceuil ou l'on met notre fichier à télécharger) et rien d'autre! (le fichier n'est pas copié!)
    As tu une reponse a mon probleme?
    Merci d'avance
    Bye bye
    Nats
    Ps: Je n'ai rien changé au script et j'ai bien la dossier avatars !

  • signaler à un administrateur
    Commentaire de ceacy le 02/11/2004 23:36:52

    Lycos affiche les erreurs, ou non ?
    Si le script provoque un timeout (l'upload ne peut pas durer plus de x secondes, sinon le serveur jette l'éponge), la page provoque une erreur (timeout). Mais je sais pas si c'est affiché (option du serveur lycos).

  • signaler à un administrateur
    Commentaire de stanilou le 03/11/2004 09:32:37

    Oui ce doit etre ca! mais il n'y a pas d'erreur! on revient juste au formulaire d'envoi du fichier! (j'ai essayé avec une photo de 90Ko, ca marche trés bien!) Y a t-il un moyen de contrer ce temps? (en clair de faire que le timeout soit au alentour de 2 minutes!)???
    Merci d'avance

  • signaler à un administrateur
    Commentaire de ceacy le 03/11/2004 09:42:16

    Il ne me semble pas ... tu peux quand même essayer avec ini_set(), (je pense que c'est "max_execution_time" et "upload_max_filesize" qui t'intéressent), mais ça m'étonnerait que le serveur lycos le permette.

    Pour plus d'infos sur ini_set() : http://www.nexen.net/docs/php/annotee/function.ini-set.php

  • signaler à un administrateur
    Commentaire de stanilou le 03/11/2004 09:46:17

    donc apparament ce serai "max_execution_time" car "upload_max_filesizeé" est fixé a 2M !
    Ok merci je vais voir ca et je te dit!

  • signaler à un administrateur
    Commentaire de jpbiocade le 27/12/2004 12:46:35

    bonjour,
    je suis tres débutant !
    merci pour ce script, voici longtemps que je cherche un moyen simple pour laisser la possibilité de déposer une image dans un album.

    j'ai fait le répertoire upload sur mon site, avec ta page php et un répertoire avatar

    tout se passe bien, j'ai confirmation du transfert, au bon chemin, bon nom, bonne taille ! mais quand je vais avec mon ftp normal voir le résultat si le fichier est bien là ... vide rien du tout ?

    j'ai laissé l'acces en écriture sur tout le répertoire et le php

    as-tu une idée pour me conseiller d'ou vient mon problème

    merci par avance
    jp

  • signaler à un administrateur
    Commentaire de ceacy le 27/12/2004 15:45:55

    Bonjour,
    Le message disant que le fichier est bien uploadé contient un lien : quand tu cliques dessus, tu accèdes à l'image, ou à une erreur 404 ?
    Si l'image apparait, c'est que c'est ton client FTP qui débloque, et que l'image est bien sur le serveur : essaie d'actualiser l'affichage de ton client FTP, ou d'en changer (filezilla est gratuit et très bien ;-))

    En revanche, si tu as une erreur 404, c'est le script qui a un problème ... et sans message d'erreur, à priori, je ne vois pas d'où ça vient :-(

  • signaler à un administrateur
    Commentaire de jpbiocade le 27/12/2004 19:18:57

    Bonjour,
    merci pour la réponse rapide, en fait victoire ça marche, j'avais pourtant rechargé la page 2 fois lors  de mes essais , quand j'ai tout fermé et relancé la page du site en fait les fichiers étaient bien là !

    Bravo pour ton script, simple et facile à mettre en oeuvre, j'ai essayé d'autres usines à gaz trop complexes pour moi, enfin du simple !

    super, merci car je cherchais depuis longtemps

    jp

  • signaler à un administrateur
    Commentaire de jpbiocade le 31/12/2004 23:05:01

    Bonjour et bonne année,
    j'ai installé le script sur mon site et ça marche bien.
    Mais je découvre un petit problème pour  mon utilisation personnelle, le changement des images d'un album par un visiteur.
    j'ai nommé mes images de mon album html , 1,2...10
    le script transforme en image_1 et mon album est ok
    ça marche bien

    mais si je reviens recharger une nouvelle image nommée 1 le nom change automatiquement et devient image_1_1285330998  par exemple
    l'image 1 n'est pas écrasée par la nouvelle 1

    y a -il une astuce pour écraser le fichier existant

    merci par avance pout ton aide

    jean-paul

  • signaler à un administrateur
    Commentaire de coucou747 le 31/12/2004 23:52:59

    je croyais avoir posté un commentaire...

    Bon, je le redis alors, ta source n'est pas sécurisée... Ta vérification de type est mauvaise...

  • signaler à un administrateur
    Commentaire de jpbiocade le 01/01/2005 10:54:31

    Bonjour,
    merci pour ta réponse rapide, mais désolé je suis débutant dans ce domaine et je ne comprends pas ta réponse

    source sécurisé... vérif type..?
    je ne sais pas si c'est ça, mais je suis déjà dans des pages d'acces par code passe sur mon site

    le script marche bien , les fichiers sont bien transférés de ce côté c'est ok

    c'est juste une problème de nom du fichier qui change apres transfert car il existe déja et est renommé automatiquement donc mon album n'est pas modifié en ligne
    l'image nommée 1 devient 1_4554387, si j'efface du serveur l'image 1 et que je transfere tout va bien

    y a t-il une ruse pour effacer l'ancien fichier de même nom puis reécrire le nouveau (l'écraser)
    afin que la nouvelle image prenne la place de l'ancienne

    merci pour ta patience
    jp




  • signaler à un administrateur
    Commentaire de ceacy le 01/01/2005 12:29:26

    Pour remplacer le fichier, il suffit (si je me souviens bien), de commenter les lignes suivantes :
    if(file_exists($dest_rep.$nom_img))
    {
    $nom_img = preg_replace("/\.([a-zA-Z]{3,4})$/i", "_".time().".\\1", $nom_img);
    }

    En revanche, coucou747, qu'entends-tu par "la vérification de type est mauvaise" ? Et comment le corriger ?

  • signaler à un administrateur
    Commentaire de coucou747 le 01/01/2005 13:09:00

    la vérification du type de fichier se fait coté client...

    tu dois la faire coté serveur...

    si on t'envoi un fichier php et qu'on le fait passer pour un fichier png, tu imagines les dégats ?

  • signaler à un administrateur
    Commentaire de jpbiocade le 01/01/2005 13:58:52

    je dois dire que c'est un peu dur dur pour mon niveau en script
    mais donc si la photo sur mon album html s'appelle cliel_image.jpg et que je veux la remplacer par une nouvelle qui s'appelle aussi ciel_image.jpg
    je dois le dire au script dans cette ligne ? mais ou ?

    if(file_exists($dest_rep.$nom_img))
    {
    $nom_img = preg_replace("/\.([a-zA-Z]{3,4})$/i", "_".time().".\\1", $nom_img);
    }

    merci
    jp

  • signaler à un administrateur
    Commentaire de coucou747 le 01/01/2005 16:21:26

    tu suprimes ces lignes...
    ainsi, il écrasera l'image existante, ne tenant pas compte des nom doubles...

  • signaler à un administrateur
    Commentaire de jpbiocade le 01/01/2005 19:24:11

    merci,
    effectivement ça marche !
    parfait pour mon application... bravo vous êtes tous sympas


    jean-paul

  • signaler à un administrateur
    Commentaire de coucou747 le 02/01/2005 12:22:09

    MAIS NON tu ne PEUX pas l'utiliser comme ça, c'est dangereux.... faut vérifier que ce fichier soit bien une image...

    <html>
    <head>
    <title>Ajouter un avatar</title>
    <link rel="Stylesheet" href="site.css" type="text/css">
    </head>
    <body>

    <?php
    $chose="<p>Ce portail a été créé pour plusieurs raisons, jouer, faire jouer, rencontrer des personnes de bon niveaux, m'améliorer en PHP, etc... Le jeu ne doit pas sortir de ce cadre... Ne mettez pas d'avatars provoquateurs ou indécents svp... Si je croise un avatar qui me déplait, je suprimerais directement le compte du vilain petit bonhome qui a fait ça...</p>
    <form enctype='multipart/form-data'
    action='add_avatar.php'
    method='post'>
    <input name='fichier' type='file'>
    <input type='submit' value='envoyer' name='bouton'>
    </form>
    <p>Merci de votre compréhention</p>";

    $bouton = $_POST['bouton'];
    if(!empty($bouton)) {
    $fichier = $_FILES['fichier']['name'];
    $size = $_FILES['fichier']['size'];
    $tmp = $_FILES['fichier']['tmp_name'];
    $type = $_FILES['fichier']['type'];
    $error = $_FILES['fichier']['error'];
    $max = 100000;
    if($fichier!="") {
    if($size <= $max) {
    $src_img = @ImageCreateFromJpeg("$tmp");
    $dst_img= @ImageCreateTrueColor(96,96);
    if (ImageSX($src_img)){
    ImageCopyResized($dst_img,$src_img,0,0,0,0,96,96,ImageSX($src_img),ImageSY($src_img));
    while (file_exists("avatars/$fichier.jpeg")){
    $fichier=$fichier."_1";
    }
    touch("avatars/$fichier.jpeg");
    ImageJpeg($dst_img,"avatars/$fichier.jpeg");
    echo "Avatar ajouté...<br>
    Merci de votre contribution à la vie de ce portail...<br>
    <img src='avatars/$fichier.jpeg'>
    <a href='index.php'>Retour...</a>";
    }else{
    echo "Ceci n'ets pas une image JPG...<hr>$chose";
    }
    }else {
    echo "Le fichier est trop volumineux...<hr>$chose";
    }
    }else{
    echo "aucun fichier envoyé...<hr>$chose";
    }
    }else{
    echo $chose;
    }
    ?>
    </body>
    </html>


    moi j'utilises ceci pour mon jeu d'échec, c'est largement plus efficace, pour savoir si c'est une image, on ouvre, et on vérifie si "l'image" a une largeur... les autrees fichiers n'en ont pas....

  • signaler à un administrateur
    Commentaire de chatis le 13/01/2005 17:37:25

    salut

    moi j'ai bien fais tout ca et créer le fichier avatars sur mon server, et kan je mets envoyé, ca fais juste un raffraichissement de la page et rien ne se passe, aucune erreur aucun résultat. et je n'ai pas du tout changé le code

  • signaler à un administrateur
    Commentaire de chatis le 13/01/2005 17:38:49

    a oui, l'adresse du ta page c'est http://chatis.ath.cx/nectar/upload_zum.php si tu veux essayer

  • signaler à un administrateur
    Commentaire de m1000 le 27/04/2005 15:42:58

    C'est très bien le fait de pouvoir uploader une image dans un répertoire mais maintenant comment supprimer une image de ce meme répertoire ?

    Merci

  • signaler à un administrateur
    Commentaire de coucou747 le 27/04/2005 17:59:08

    mais cherche dans le manuel avant de poser des questions bètes !!!

    unlink('fichier.extention');

    ou

    system('rm fichier.extention');

    ou

    exec('rm fichier.extention');

    avec une préférence pour unlink

  • signaler à un administrateur
    Commentaire de mac06 le 11/05/2005 15:55:26

    Merci pour ton script, ca ma fait gagner du temps, et il est sympa

  • signaler à un administrateur
    Commentaire de twelve34 le 14/06/2005 10:30:27

    L'upload est bien effectuée pour ma part, mais ça me génère quand même cette erreur :

    Warning: getimagesize(): open_basedir restriction in effect. File(/tmp/phptNzrzh) is not within the allowed path(s): (.:/home/sites) in /home/sites/site161/web/divers/upload_zum.php on line 68

    Warning: getimagesize(/tmp/phptNzrzh): failed to open stream: Operation not permitted in /home/sites/site161/web/divers/upload_zum.php on line 68

    Merci de votre aide à tous!

  • signaler à un administrateur
    Commentaire de ceacy le 14/06/2005 11:15:48

    Il me semble que c'ets dû à des restrictions de sécurité sur ton serveur : tes scripts PHP n'ont le droit de manipuler des fichiers que dans certains dossiers (/home/sites et sous-dossiers, en l'occurrence), et l'image se trouve dans /tmp.

    Si tu as la main sur le serveur, ajoute /tmp à tes dossiers utilisés.

  • signaler à un administrateur
    Commentaire de coucou747 le 14/06/2005 12:39:41

    va voir le chmod

  • signaler à un administrateur
    Commentaire de danhila le 17/10/2005 11:27:49

    Bonjour, je suis débutante, et je voudrais savoir si dans ce script il y a des choses à créer dans la bdd?

  • signaler à un administrateur
    Commentaire de babatt92 le 17/10/2005 14:27:59

    Comment on fait pour mettre plusieurs champ donc plusieurs upload?

  • signaler à un administrateur
    Commentaire de coucou747 le 17/10/2005 18:52:41

    pour mettre ça dans une BDD, il faut faire une colone MEDIUMBLOB, et pour avoir plusieurs champs : il faut faire plusieurs lignes : <input type="file" ... />

    Mon code précédent était largement plus sécurisé, mais ne l'était pas totalement...

  • signaler à un administrateur
    Commentaire de babatt92 le 18/10/2005 00:06:09

    Merci ça c'est pas trop dure ;-)
    Si je nomme les fichier <input type="file" name='fichier1'  /><input type="file" name='fichier2'  /><input type="file" name='fichier3'  />...ainsi de suite cela ne fonctionne pas

  • signaler à un administrateur
    Commentaire de coucou747 le 18/10/2005 19:05:01

    Salut, pour mieux comprendre les uploads, je te conseilles le code suivant à la sortie de ton formulaire...

    <?php
    print_r($_FILES);
    ?>

    ici, tu devrais avoir le nom de ton fichier uploadé dans $_FILES['fichier']['name'], son nom temporaire dans $_FILES['fichier']['tmpname'], son type dans $_FILES['fichier']['type'], et le fait qu'il y ai eu une erreur dans $_FILES['fichier']['error']

    voila, tu peux ensuite utiliser copy ou autres...

    j'ai posté deux sources sur les dangers du php, les deux montrent des failles dues aux téléchargements, l'une d'entre elle y est exclusivement consacré, vas y faire un tour avant de poster une source, histoire qu'elle soit sécurisée...

  • signaler à un administrateur
    Commentaire de GunnmFred le 06/11/2005 16:06:15

    Salut,
    Pour coucou747 : Il ne manquerait pas une fonction header dans ton code pour que la fonction touch s'effectue correctement ?

  • signaler à un administrateur
    Commentaire de coucou747 le 06/11/2005 17:05:02

    quel rapport entre touch et header ????

    header renvoi qqch au navigateur, touch cré un fichier sur le serveur...

    aucun rapport...

    tu devrais tester au lieu de poser des questions comme ça !

  • signaler à un administrateur
    Commentaire de GunnmFred le 06/11/2005 22:51:55

    Je me suis trompe sur la fonction, désolé. Ma question venait de la :
    http://www.nexen.net/docs/php/annotee/function.imagejpeg.php
    Et apres essais, ca marche, c est moi qui ait du mal comprendre le paragraphe sur le header.

  • signaler à un administrateur
    Commentaire de keroberos le 21/03/2006 14:00:20

    ton upload deconne a plein tube jarrive a add des page php

  • signaler à un administrateur
    Commentaire de keroberos le 21/03/2006 14:01:23

    g juste a mettre un script et je kill ton site web mdr

  • signaler à un administrateur
    Commentaire de keroberos le 21/03/2006 14:03:45

    http://membres.lycos.fr/ceacy/avatars/avatar_index_1142945691.php

    deso pour le flood jaurai du faire tous en une foi

  • signaler à un administrateur
    Commentaire de doug08 le 28/08/2006 11:57:03

    Je n'arrive pas a centrer le tableau sur la page. Quelqu'un y est arriver  ?! MErci.

  • signaler à un administrateur
    Commentaire de carate le 05/05/2007 14:54:06

    chez moi sa va po

  • signaler à un administrateur
    Commentaire de White Angels le 19/06/2007 12:46:27

    N'utiliser pas sont script. il est faillible.

    ouver ceci avec Internet Explorer : http://membres.lycos.fr/ceacy/avatars/avatar_polla.png

    si j'aurais voulu, j'aurais upper un BackDoor pour hacker le ftp !

  • signaler à un administrateur
    Commentaire de babatt92 le 19/06/2007 14:00:58

    Effectivement.
    Est ce que tu peux tester le mien http://www.AuStatueQuo.com

  • signaler à un administrateur
    Commentaire de coucou747 le 19/06/2007 14:04:26

    tu fais ma pub pour ton site ?

  • signaler à un administrateur
    Commentaire de babatt92 le 19/06/2007 14:46:16

    Si on veut ;) mais bien remanié le code

  • signaler à un administrateur
    Commentaire de coucou747 le 19/06/2007 14:59:02

    au bout de 10 minutes de jeu

    http://sebastien.sajous.free.fr/absolut/index.php?Vol=Consult&LangID=1%20injection

    en cherchant bien, on pourrait trouver comment injecter ici
    http://sebastien.sajous.free.fr/absolut/Commun/index.php?RubID=2%20union%20select%201,1.1,1&LangID=1
    idem ici
    http://sebastien.sajous.free.fr/absolut/Commun/index.php?Expli=Accueil&RubID=5&Suite=2&PID=33%20OR%201=1&LangID=1
    idem ici

    voila, en esperant qu'ici  personne ne fasse joujou ou que tu puisses recoller les morceaux...
    t'as de la chance de ne pas avoir afficher mysql_error() dans ta version de production ou la requette car la, j'aurais peut-etre pu avoir plus de resultats...

    tu ne devrais pas faire de la pub pour ton site ici, c'est pas l'endroit

  • signaler à un administrateur
    Commentaire de White Angels le 19/06/2007 17:20:32

    babatt92 >> C'est ou qu'il y a un script d'upload ? XD

  • signaler à un administrateur
    Commentaire de coucou747 le 19/06/2007 17:26:01

    nan mais cherche pas, il faisait juste de la pub pour son site

  • signaler à un administrateur
    Commentaire de babatt92 le 19/06/2007 17:32:11

    Je fais pas de pub, je n'y gargne rien.

    http://sebastien.sajous.free.fr/absolut/index.php?Fiche=Telecharger&LangID=1

  • signaler à un administrateur
    Commentaire de coucou747 le 19/06/2007 18:04:46

    si tu postais tes sources sur le forum, ca serait plus a sa place, et on pourrait te repondre plus vite...

  • signaler à un administrateur
    Commentaire de bolox le 20/07/2007 14:42:55

    bonjour, ce code m'a l'air parfait mais j'ai une erreur en executant la page :

    Undefined variable: file_name.......on line 52

    pourquoi ?

  • signaler à un administrateur
    Commentaire de ceacy le 20/07/2007 20:18:27

    Ce code n'est absolument plus conforme aux directives de sécurité actuelles. L'erreur doit être causée par le fait que sur ton serveur, la directive register_global est probablement à "off" (valeur conseillée) ...

  • signaler à un administrateur
    Commentaire de mobman02 le 21/07/2007 11:23:40

    Si vous cherchez quelque chose de plus "au gout du jour" pour un upload d'image, vous pouvez suivre ce petit tuto : http://blog.damienalexandre.fr/index.php?post/2006/04/13/87-upload-image-php-telecharge

  • signaler à un administrateur
    Commentaire de neocoderz le 08/04/2008 04:48:27

    ce code est vulnerable , possibilité d'uploader un fichier php

Ajouter un commentaire

Pub



Appels d'offres

Dessins techniques
Budget : 60€
Animation Flash - Doma...
Budget : 370€
Application flash medi...
Budget : 1 000€

CalendriCode

Juillet 2008
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

VS Express FR Gratuit !

VS Express en français et 100% gratuit !

Téléchargements

Logiciels à télécharger sur le même thème :

Boutique

Boutique de goodies CodeS-SourceS