Limite taille des fichiers d'un formulaire

Voleol
Invité n'ayant pas de compte PHPfrance

20 févr. 2013, 05:02

Bonsoir à tous,

J'ai récemment réalisé un site pour un ami qui souhaite y publier des logements à louer. Il est nul en informatique, ce qui m'a amené à réaliser un formulaire Html simple permettant d'uploader jusqu'à 10 images. celui-ci dirige les images vers un fichier php qui réalise une série de tests et qui les enregistre sur un serveur.

Le tout fonctionne parfaitement en local. Le problème est en ligne. Lorsque les images ont une trop grosses tailles, il n'y en a que 3 ou 4 qui sont enregistrées dans le dossier sur le serveur. À titre indicatif, un envoi de 10 images de 900ko par image fonctionne parfaitement, tandis qu'un envoi de 3,20Mo par image ne fonctionne pas.

Voici mes questions:

Le serveur pourrait-il limiter la taille de l'envoi d'un formulaire d'une page à l'autre?

Est-il possible de réduire la taille des images en utilisant un code php ou html AVANT l'envoi du formulaire?

Je suis bien conscient que le plus simple serait de lui montrer comment réduire le poids de ses images avec un petit logiciel, mais j'aimerais que le code puisse faire le travail lui-même.

Merci pour vos réponses et n'hésitez-pas à me rediriger vers des tutos ou sur d'autres forums.

Bonne soirée.

Eléphant du PHP | 453 Messages

20 févr. 2013, 10:14

Salut,
Le serveur pourrait-il limiter la taille de l'envoi d'un formulaire d'une page à l'autre?
oui :
Tout se passe dans le php.ini :

Code : Tout sélectionner

/etc/php5/apache2/php.ini
Par défaut, l'instruction doit être de 2mo.

Code : Tout sélectionner

upload_max_filesize=2M
Aussi, il doit y avoir le post maximal et la taille de la mémoire :

Code : Tout sélectionner

post_max_size = 4M memory_limit=2M
Si tu as la main sur ce fichier, fait les changements. Sinon tu as toujours la possibilité de le faire à la mano dans ton code :
//valeur à titre d'exemple. Réajuster les valeurs
ini_set('memory_limit', '96M');
ini_set('post_max_size', '64M');
ini_set('upload_max_filesize', '64M');
Est-il possible de réduire la taille des images en utilisant un code php ou html AVANT l'envoi du formulaire?
non puisque tu n'as pas la main sur le/s fichier/s.
La Tux attitude avec les kiw'z syou plait
Komodo Edit - Inkscape - Dia

Eléphant du PHP | 267 Messages

20 févr. 2013, 12:18

pour le resizing, quelques pistes ici

Petit nouveau ! | 6 Messages

20 févr. 2013, 12:49

Pour les navigateurs qui supportent FileAPI tu peux vérifier la taille des fichiers avant leur envoi (attention, javascript tout moche !) :

[javascript]
var control = document.getElementById('myfilecontrol')

control.onchange = function() {

if (!this.files.length) return

if (this.files[0].size > MAX_SIZE)
{
alert("Le fichier est trop volumineux")
}
}
[/javascript]