Aller au contenu

Upload et verification d'images


Sujets conseillés

Posté

Bonjour tout le monde,

j'ai un problème php que je n'arrive pas à résoudre :

Lors d'un upload d'image par formulaire, est-t-il possible, si l'image envoyée est trop lourde, de la réduire, puis de l'enregistrer sans avoir à enregistrer l'image originale ?

Je n'arrive à créer et enregistrer une image réduite que si j'enregistre au préalable l'originale.

Je n'arrive pas à avoir accès à l'image originale stockée en fichier temporaire lors de l'upload pour pouvoir la réduire et l'enregistrer.

Merci d'avance de votre aide :)

Posté

Salut,

Il faut que tu test $_FILES et si supérieur à ta valeur limite, redimensionnes le fichier dont le nom temporaire est $_FILES[tmp_name] et qui est dans le répertoire d'upload par défaut définit par la directive de configuration : upload_tmp_dir

@++

Posté

Si l'image est plus grosse que la limite que tu as indiques, elle n'est pas creer en fichier temporaire donc il n'est pas possible de la recuperer :mad2:

C'est d'autant plus stupide que le fichier semble bien etre transferer au vu de l'activite reseau que j'ai eu lorsque j'ai fait des testes ...

Posté (modifié)

Si le but est de réduire les images dont le poids est trop important, il ne faut pas mettre de "MAX FILE SIZE" sinon l'image ne sera pas enregistrée . MAX FILE SIZE s'utilise si tu veux interdire l'envoi de fichier trop gros, hors ici equids veut les redimensionner avant de les enregistrer.

Il faut par contre dans ton fichier de traitement du formulaire tester la taille du fichier transféré et

-soit l'enregistrer directement si la taille est inférieur à ta limite

-soit la redimensionner et l'enregistrer.

Attention tout de même à la taille limite d'envoi configuré sur le serveur.

Modifié par birdyman
Posté

Ce que je voulais dire, c'est qu'ajouter un champ "MAX FILE SIZE" en adéquation avec la valeur maximale configurée côté serveur, permet de ne pas uploader de fichier trop gros qui ne pourrait pas être traité par la suite.

Posté

Merci pour tous vos conseils utiles,

j'ai trouvé comment faire avec le fichier temporaire. Et c'est vrai qu'il est inutile de charger un fichier qui dépasse d'emblée les capacités que la max upload accepte.

A ce sujet est il dangereux au niveau de la sécurité du serveur de monter de 2Mo (par défaut) à 5Mo ?

Posté

Au niveau sécurité cela ne change rien, par contre au niveau performances tout dépend du nombre d'uploads que tu as par jour si c'est de l'ordre quelques uns par jour ou si c'est plusieurs centaines.

Posté
Au niveau sécurité cela ne change rien, par contre au niveau performances tout dépend du nombre d'uploads que tu as par jour si c'est de l'ordre quelques uns par jour ou si c'est plusieurs centaines.

C'est au niveau de la bande passante que ça peut coincer après ?

Posté
C'est au niveau de la bande passante que ça peut coincer après ?

A moins que tu es un nombre gigantesque d'utilisateurs concurrent, et qu'ils telechargent tous en meme temps, ca m'etonnerai un peu.

Dans mon cas, je transforme les images telechargees a la volee avec GD (retaillage, mise d'un watermark, ...) avant de les publier, et vu le peu de ram de mon serveur, ca evite que ca swap ... surtout que je les retaille en 640/480. De plus, beaucoup de mes utilisateurs ont des connections lentes, donc ca evitent qu'ils perdent leur temps pour rien.

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...