Evangun
Messages postés1980Date d'inscriptiondimanche 20 février 2005StatutMembreDernière intervention24 septembre 2012
-
8 août 2006 à 02:13
cs_smart16
Messages postés5Date d'inscriptionsamedi 20 mars 2010StatutMembreDernière intervention27 mars 2010
-
21 mars 2010 à 17:25
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
cs_smart16
Messages postés5Date d'inscriptionsamedi 20 mars 2010StatutMembreDernière intervention27 mars 2010 21 mars 2010 à 17:25
ok merci
MarcLaurentHarnist
Messages postés4Date d'inscriptionlundi 24 août 2009StatutMembreDernière intervention20 mars 2010 20 mars 2010 à 12:46
Avec ce script ce n'est pas possible, il faudrait le perfectinner.
Il existe un code php pour uploader plusieurs images en même temps. Dotclear le permet dans son gestionnaire de média.
cs_smart16
Messages postés5Date d'inscriptionsamedi 20 mars 2010StatutMembreDernière intervention27 mars 2010 20 mars 2010 à 12:41
bonjour rour le monde,
est-ce que c'est possible d'uploader plusieurs images en même temps ???
MarcLaurentHarnist
Messages postés4Date d'inscriptionlundi 24 août 2009StatutMembreDernière intervention20 mars 2010 2 févr. 2010 à 07:46
Bonjour Jakkes,
C'est très simple, la seconde image écrase la première et prend sa place.
C'est pour cela qu'on utilise le timestamp pour être sûr de donner un autre nom.
Mais tu peux créer un fichier php sans timestamp justement, afin d'utiliser l'écrasement pour remplacer une image qui ne te plaît pas.
Ainsi, tu peux te créer toi-même un vrai gestionnaire d'image (ou gestionnaire de médias) avec plusieurs options:
- rajouter une image
- remplacer une image
- afficher les images
Voilà, cordialement, Marc.
PS: n'utilisez pas
pour les retours à la ligne, mais plutôt:
(pour la validation W3C)
salut les programmeurs je me demandais qu'est ce qui se passerait si on upload deux images qui ont le même
nom avec ce script?répondez please
MarcLaurentHarnist
Messages postés4Date d'inscriptionlundi 24 août 2009StatutMembreDernière intervention20 mars 2010 28 août 2009 à 19:50
J'ai rajouté un petit code pour empêcher le chargement d'images en format bitmap. (.bmp)
Pour ceux qui voudrait le rajouter.
// On ne veut pas de bmp//
elseif ($_FILES['fichier']['type'] == 'image/bmp')
{
$erreur = 'Le format bitmap (.bmp) n\'est pas accepté. Convertissez-la en jpg, png ou gif avant de l\'envoyer, merci';
}
MarcLaurentHarnist
Messages postés4Date d'inscriptionlundi 24 août 2009StatutMembreDernière intervention20 mars 2010 24 août 2009 à 20:24
Bravo Artderue62 pour ce code. J'ai parcouru le web toute l'après-midi pour ne trouver que des codes qui ne fonctionnent pas. Le tien fonctionne très bien, trop même ! Mais après avoir appliqué le verrou de sécurité conseillé par Wizard, tout va bien ! Je te donne une très bonne note. Je vais insérer ce code dans mon annuaire sur Creaweb3000.com où mes visiteurs pourront envoyer un logo ou une bannière de leur site.
golant
Messages postés6Date d'inscriptionmercredi 27 décembre 2006StatutMembreDernière intervention28 octobre 2009 17 mai 2009 à 16:21
L'upload de jpeg depuis Internet Explorer ne fonctionne pas... Que faire ?
Côté sécurité, je vais l'utiliser pour un CMS privé donc nikel pour moi !
Sinon, impeccable ! Exactement ce que je cherchais !
Si vous pouviez m'aider pour ce souci de .jepg sous IE ça serait super ! Merci.
++
coucou747
Messages postés12303Date d'inscriptionmardi 10 février 2004StatutMembreDernière intervention30 juillet 201244 9 févr. 2009 à 15:46
la verification par extention n'est pas fiable, la preuve en est : elle depend du client.
Chouchille
Messages postés1Date d'inscriptionmercredi 20 août 2008StatutMembreDernière intervention 9 février 2009 9 févr. 2009 à 15:25
Pour faire fonctionner le script sous IE, il suffit just de faire un var_dump($_FILES); et de recuperer le type retourne par IE.
Au final il suffit de changer le if de la verification du type de fichier par ca :
if ($_FILES['fichier']['type'] != 'image/png' && $_FILES['fichier']['type'] != 'image/x-png' && $_FILES['fichier']['type'] != 'image/jpeg' && $_FILES['fichier']['type'] != 'image/jpg' && $_FILES['fichier']['type'] != 'image/pjpg' && $_FILES['fichier']['type'] != 'image/pjpeg')
et de rajouter les if correspondant pour l'extension du timestamp
Pour LEFTER :
Ton idee de remplacer ses verifications par " $extentsion=substr($_FILES['fichier']['name'],-4); " est bonne mais ne va pas fonctionner pour les .jpeg
coucou747
Messages postés12303Date d'inscriptionmardi 10 février 2004StatutMembreDernière intervention30 juillet 201244 22 août 2008 à 21:49
djyac, cette source contient de grosses failles.
cs_djyac
Messages postés4Date d'inscriptionmercredi 6 février 2008StatutMembreDernière intervention 7 juin 2008 7 juin 2008 à 03:33
bravo!!! c'est exactement ce que je cherche. bon continuation
Comment est-ce que je pourrais avec ce script, limité à une largeur et une hauteur prédéfinie ?
Merci d'avances
code000
Messages postés4Date d'inscriptionmardi 22 janvier 2008StatutMembreDernière intervention23 janvier 2008 23 janv. 2008 à 01:47
" ...
de meme j'aimerai savoir comment modifier les "extonçions" pour ajouter des icônes genre "icone.ico" par exemple ?"
Pour uploader des icônes on met "image/x-icon" en place de "image/gif" par ex. anisi après modifications on obtient:
==========================================================
// 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/x-icon'
)
{
$erreur = 'Le fichier doit être au format *.jpeg, *.jpg, *.ico, *.gif ou *.png .';
}
==========================================================
et just en bas :
==========================================================
// 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/x-icon')
{ $extention = '.ico'; }$nom_fichier time().$extention; C U ;)
CODE000.
code000
Messages postés4Date d'inscriptionmardi 22 janvier 2008StatutMembreDernière intervention23 janvier 2008 23 janv. 2008 à 00:00
ZeGamer,
voici une variante qui permet d'afficher l'image une fois uploadée (à mettre à la place de lignes 45.46.47.48.49.50.).
==================================================
// On upload le fichier sur le serveur.
if (move_uploaded_file($_FILES['fichier']['tmp_name'], $repertoire.$nom_fichier))
{
$url = 'http://www.monsite.com/'.$repertoire.''.$nom_fichier.'';
echo '
<center>
Votre image à été uploadée sur le serveur avec succes!
[' . $url . ' '.$nom_fichier.']
[' . $url . ' ' . $url . ']
[' . $url . ' ]
Lien direct:
Lien forum:
[javascript:history.back(1)
Pour uploader une autre image]
code000
Messages postés4Date d'inscriptionmardi 22 janvier 2008StatutMembreDernière intervention23 janvier 2008 22 janv. 2008 à 22:42
salut à tous
C ma première participation sur le réseau codes_source,
je vous cache pas que je le trouve très sympas ..
à propos du script "Uploader vos images", il marche très bien
sauf coté sécurité qui rest à develepper ...
de meme j'aimerai savoir comment modifier les "extonçions" pour ajouter des icons genre "icone.ico" par exemple.
ps: kelkn a dit que "extençion" c'est avec un "s" bhen tout marchai très bien avant de mettre "s" en place de "t" ou bien je me trompe!!
kaizer63
Messages postés25Date d'inscriptionmercredi 18 février 2004StatutMembreDernière intervention22 décembre 2009 24 août 2007 à 01:50
Personellement je l'ai testé sur mon ftp c'est un DEmo 1G OVH et il me dit que l'image a été uploadé et me done l'url le probleme aucune trace de l'image, et cela avec tous les script d'upload d'image que j' ai testé.
Quelqu'un peu m'aider?
White Angels
Messages postés4Date d'inscriptionlundi 21 août 2006StatutMembreDernière intervention19 juin 2007 19 juin 2007 à 12:51
N'utiliser pas ce script, je vient de l'essayer on peut uploader des backdoors en les mettant dans des images ^^
gfpl
Messages postés172Date d'inscriptionsamedi 11 août 2012StatutMembreDernière intervention 9 avril 2011 24 avril 2007 à 11:35
je susi pas sur que coter securiter ca le fasse :)
cs_marial
Messages postés13Date d'inscriptionjeudi 1 février 2007StatutMembreDernière intervention 5 juin 2007 2 févr. 2007 à 08:49
Salut artderue62,
Mon joli code ne fonctionne pas sur Internet Explorer; comment peut-on le tester et le faire fonctionner sur Internet ???
Merci pour vos réponses et suggestions.
ZeGamer
Messages postés3Date d'inscriptionmardi 12 octobre 2004StatutMembreDernière intervention23 octobre 2006 23 oct. 2006 à 19:51
erf excusez mon dernier commentaire j'ai confondu avec un autre script dans le genre sur une autres fenetre -_-
ZeGamer
Messages postés3Date d'inscriptionmardi 12 octobre 2004StatutMembreDernière intervention23 octobre 2006 23 oct. 2006 à 19:48
hm, est-il possible d'ajouter l'url de l'image uploadée ? j'ai bien essayer mais ca marche pas des masse ^^
Par contre comme BBSEBB certaines images ne passe pas (ce sont pourtant belle est bien des images sans code malveillant)
bbsebb
Messages postés2Date d'inscriptionmercredi 22 novembre 2000StatutMembreDernière intervention 9 octobre 2006 9 oct. 2006 à 17:49
Les images en format JPG ne marchent pas avec ie mais avec firefox chez moi. Par contre les autres images aucun problème, c'est vraiment bizzard !!!
kankrelune
Messages postés1293Date d'inscriptionmardi 9 novembre 2004StatutMembreDernière intervention21 mai 2015 9 août 2006 à 13:56
Comme l'on dit Wizad et Anthomicro le mime type est transmit par le navigateur et non le serveur il est donc facilement falsifiable... mieux vaut faire comme Wizad à dit dans le cas d'une image ou en fonction de l'extension dans le cas d'upload de fichiers mixtes... l'extension conditionnant la façon dont est éxécuté le fichier pour apache... .. .
Renommer les fichiers en ajoutant au nom un id créé aléatoirement est un plus non néligeable contre des attaques... ça empeche un pseudo pirate de retrouver son fichier une fois qu'il est uploadé... personnellement quand les fichiers uploadés ne sont pas censés être utilisés de suite je les zip comme ça c'est réglé... .. .
@ tchaOo°
cs_wizad
Messages postés355Date d'inscriptionsamedi 30 octobre 2004StatutMembreDernière intervention14 avril 2009 9 août 2006 à 09:19
je parlais peu sécuriser au niveau de la détection du type de fichier (et de la gestion). il est trés facile de faire passer par ce script fichier potentielement dangereux (type code malveillant).
lefter
Messages postés63Date d'inscriptionlundi 7 juin 2004StatutMembreDernière intervention16 mai 2009 9 août 2006 à 08:32
if ($_FILES['fichier']['type'] != 'image/png' && $_FILES['fichier']['type'] != 'image/jpeg' && $_FILES['fichier']['type'] != 'image/jpg' && $_FILES['fichier']['type'] != 'image/gif')
{
$erreur = 'Le fichier doit être au format *.jpeg, *.gif ou *.png .';
}
Je pense que légérement plus clair et rapide:
if (!in_array($_FILES['fichier']['type'],array('image/png','image/jpg','image/gif')){ ....
Ainsi que :
if ($_FILES['fichier']['type'] == 'image/jpeg') { $extention = '.jpg'; }
if ($_FILES['fichier']['type'] == 'image/png') { $extention = '.png'; }
if ($_FILES['fichier']['type'] == 'image/gif') { $extention = '.gif'; }
Remplacer par :
$extentsion=substr($_FILES['fichier']['name'],-4);
// A Imbriquer dans le else du dessus :-)
wizad [peu sécuriser tous ça...] > Il est toujours possible de passé en Https (si l'hébergeur le gère) :-) mais je pense qu'il y a pas problème de sécurité ici.
Peut-être pour un évolution future:
- Gestion des photos et de catégorie
- Gestion des volumes par utilisateur
et bien d'autre ...
Voici quelques idées je pense judicieuse pour une évolution de ton code.
cs_wizad
Messages postés355Date d'inscriptionsamedi 30 octobre 2004StatutMembreDernière intervention14 avril 2009 9 août 2006 à 07:08
il me semble que c'est exactement ce que j'ai dit... ou alors suis encore pas bien reveillé.
cs_Anthomicro
Messages postés9433Date d'inscriptionmardi 9 octobre 2001StatutMembreDernière intervention13 avril 20078 8 août 2006 à 23:00
Salut,
wizad > ce que tu dis ne fonctionnera pas vu qu'il vérifie le type envoyé par le navigateur.
Par contre ce type peut être modifié (cf site de coucou747) bref y'a une solution : getimagesize() pour vérifier que le fichier est bien une image.
a +
cs_wizad
Messages postés355Date d'inscriptionsamedi 30 octobre 2004StatutMembreDernière intervention14 avril 2009 8 août 2006 à 07:40
peu sécuriser tous ça...
essai d'uploader un fichier .php (par exemple) en le renomant avec l'extension .jpg... tu comprendra les dégats. Essai de faire un test avec cette fonction :
if(!@getimagesize($_FILES['fichier']['tmp_name']))
{ echo 'Vous avez tentez d'uploader un fichier qui n'est pas une image.'; }
else
{ echo 'C'est bon!'; }
Evangun
Messages postés1980Date d'inscriptiondimanche 20 février 2005StatutMembreDernière intervention24 septembre 20124 8 août 2006 à 02:13
Salut,
tu devrais mieux indenter ton code, du début à la fin.
Sinon pourquoi définir un champ hidden avec le MAXSIZE, vu que tu le définis en dur de toute façon ?
et renommer le fichier par le timestamp, c'est arbitraire et inutile... si tu veux la date, tu prends un timedate et si tu veux un id unique t'en prends un plus court ou tu renommes en image(2).jpg...
Au fait artderue, est-ce que tu as déjà tapé "upload image" dans le moteur de Code Source ? essaie ;)
ps: extension s'écrit avec un s.
21 mars 2010 à 17:25
20 mars 2010 à 12:46
Il existe un code php pour uploader plusieurs images en même temps. Dotclear le permet dans son gestionnaire de média.
20 mars 2010 à 12:41
est-ce que c'est possible d'uploader plusieurs images en même temps ???
2 févr. 2010 à 07:46
C'est très simple, la seconde image écrase la première et prend sa place.
C'est pour cela qu'on utilise le timestamp pour être sûr de donner un autre nom.
Mais tu peux créer un fichier php sans timestamp justement, afin d'utiliser l'écrasement pour remplacer une image qui ne te plaît pas.
Ainsi, tu peux te créer toi-même un vrai gestionnaire d'image (ou gestionnaire de médias) avec plusieurs options:
- rajouter une image
- remplacer une image
- afficher les images
Voilà, cordialement, Marc.
PS: n'utilisez pas
pour les retours à la ligne, mais plutôt:
(pour la validation W3C)
[Mon site: http://creaweb3000.com]
1 févr. 2010 à 18:17
nom avec ce script?répondez please
28 août 2009 à 19:50
Pour ceux qui voudrait le rajouter.
// On ne veut pas de bmp//
elseif ($_FILES['fichier']['type'] == 'image/bmp')
{
$erreur = 'Le format bitmap (.bmp) n\'est pas accepté. Convertissez-la en jpg, png ou gif avant de l\'envoyer, merci';
}
24 août 2009 à 20:24
17 mai 2009 à 16:21
Côté sécurité, je vais l'utiliser pour un CMS privé donc nikel pour moi !
Sinon, impeccable ! Exactement ce que je cherchais !
Si vous pouviez m'aider pour ce souci de .jepg sous IE ça serait super ! Merci.
++
9 févr. 2009 à 15:46
9 févr. 2009 à 15:25
Au final il suffit de changer le if de la verification du type de fichier par ca :
if ($_FILES['fichier']['type'] != 'image/png' && $_FILES['fichier']['type'] != 'image/x-png' && $_FILES['fichier']['type'] != 'image/jpeg' && $_FILES['fichier']['type'] != 'image/jpg' && $_FILES['fichier']['type'] != 'image/pjpg' && $_FILES['fichier']['type'] != 'image/pjpeg')
et de rajouter les if correspondant pour l'extension du timestamp
Pour LEFTER :
Ton idee de remplacer ses verifications par " $extentsion=substr($_FILES['fichier']['name'],-4); " est bonne mais ne va pas fonctionner pour les .jpeg
22 août 2008 à 21:49
7 juin 2008 à 03:33
22 avril 2008 à 05:26
Merci d'avances
23 janv. 2008 à 01:47
de meme j'aimerai savoir comment modifier les "extonçions" pour ajouter des icônes genre "icone.ico" par exemple ?"
Pour uploader des icônes on met "image/x-icon" en place de "image/gif" par ex. anisi après modifications on obtient:
==========================================================
// 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/x-icon'
)
{
$erreur = 'Le fichier doit être au format *.jpeg, *.jpg, *.ico, *.gif ou *.png .';
}
==========================================================
et just en bas :
==========================================================
// 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/x-icon')
{ $extention = '.ico'; }$nom_fichier time().$extention;
C U ;)
CODE000.
23 janv. 2008 à 00:00
voici une variante qui permet d'afficher l'image une fois uploadée (à mettre à la place de lignes 45.46.47.48.49.50.).
==================================================
// On upload le fichier sur le serveur.
if (move_uploaded_file($_FILES['fichier']['tmp_name'], $repertoire.$nom_fichier))
{
$url = 'http://www.monsite.com/'.$repertoire.''.$nom_fichier.'';
echo '
<center>
Votre image à été uploadée sur le serveur avec succes!
[' . $url . ' '.$nom_fichier.']
[' . $url . ' ' . $url . ']
[' . $url . ' ]
Lien direct:
Lien forum:
[javascript:history.back(1)
Pour uploader une autre image]
Info image:
Nom: '.$nom_fichier.'
Type: '.$_FILES['fichier']['type'].'
Taille (octets): '.$_FILES['fichier']['size'].' octets.
</center>
';
}
==================================================
C U ;)
22 janv. 2008 à 22:42
C ma première participation sur le réseau codes_source,
je vous cache pas que je le trouve très sympas ..
à propos du script "Uploader vos images", il marche très bien
sauf coté sécurité qui rest à develepper ...
de meme j'aimerai savoir comment modifier les "extonçions" pour ajouter des icons genre "icone.ico" par exemple.
ps: kelkn a dit que "extençion" c'est avec un "s" bhen tout marchai très bien avant de mettre "s" en place de "t" ou bien je me trompe!!
24 août 2007 à 01:50
Quelqu'un peu m'aider?
19 juin 2007 à 12:51
24 avril 2007 à 11:35
genre
if( preg_match('#[\x00-\x1F\x7F-\x9F/\\\\]#', $name_file) )
{/////////////////////////////
je susi pas sur que coter securiter ca le fasse :)
2 févr. 2007 à 08:49
Mon joli code ne fonctionne pas sur Internet Explorer; comment peut-on le tester et le faire fonctionner sur Internet ???
Merci pour vos réponses et suggestions.
23 oct. 2006 à 19:51
23 oct. 2006 à 19:48
Par contre comme BBSEBB certaines images ne passe pas (ce sont pourtant belle est bien des images sans code malveillant)
9 oct. 2006 à 17:49
9 août 2006 à 13:56
Renommer les fichiers en ajoutant au nom un id créé aléatoirement est un plus non néligeable contre des attaques... ça empeche un pseudo pirate de retrouver son fichier une fois qu'il est uploadé... personnellement quand les fichiers uploadés ne sont pas censés être utilisés de suite je les zip comme ça c'est réglé... .. .
@ tchaOo°
9 août 2006 à 09:19
9 août 2006 à 08:32
{
$erreur = 'Le fichier doit être au format *.jpeg, *.gif ou *.png .';
}
Je pense que légérement plus clair et rapide:
if (!in_array($_FILES['fichier']['type'],array('image/png','image/jpg','image/gif')){ ....
Ainsi que :
if ($_FILES['fichier']['type'] == 'image/jpeg') { $extention = '.jpg'; }
if ($_FILES['fichier']['type'] == 'image/png') { $extention = '.png'; }
if ($_FILES['fichier']['type'] == 'image/gif') { $extention = '.gif'; }
Remplacer par :
$extentsion=substr($_FILES['fichier']['name'],-4);
// A Imbriquer dans le else du dessus :-)
wizad [peu sécuriser tous ça...] > Il est toujours possible de passé en Https (si l'hébergeur le gère) :-) mais je pense qu'il y a pas problème de sécurité ici.
Peut-être pour un évolution future:
- Gestion des photos et de catégorie
- Gestion des volumes par utilisateur
et bien d'autre ...
Voici quelques idées je pense judicieuse pour une évolution de ton code.
9 août 2006 à 07:08
8 août 2006 à 23:00
wizad > ce que tu dis ne fonctionnera pas vu qu'il vérifie le type envoyé par le navigateur.
Par contre ce type peut être modifié (cf site de coucou747) bref y'a une solution : getimagesize() pour vérifier que le fichier est bien une image.
a +
8 août 2006 à 07:40
essai d'uploader un fichier .php (par exemple) en le renomant avec l'extension .jpg... tu comprendra les dégats. Essai de faire un test avec cette fonction :
if(!@getimagesize($_FILES['fichier']['tmp_name']))
{ echo 'Vous avez tentez d'uploader un fichier qui n'est pas une image.'; }
else
{ echo 'C'est bon!'; }
8 août 2006 à 02:13
tu devrais mieux indenter ton code, du début à la fin.
Sinon pourquoi définir un champ hidden avec le MAXSIZE, vu que tu le définis en dur de toute façon ?
et renommer le fichier par le timestamp, c'est arbitraire et inutile... si tu veux la date, tu prends un timedate et si tu veux un id unique t'en prends un plus court ou tu renommes en image(2).jpg...
Au fait artderue, est-ce que tu as déjà tapé "upload image" dans le moteur de Code Source ? essaie ;)
ps: extension s'écrit avec un s.