J'ai un site Web hébergé sur un PC auquel je n'ai pas accès. J'ai un formulaire de téléchargement qui permet aux gens de télécharger des fichiers MP3 d'une taille pouvant aller jusqu'à 30 Mo. Mon script côté serveur est fait en PHP.
Chaque fois que j'essaie de télécharger un fichier, je reçois une erreur indiquant que le fichier dépasse la taille maximale autorisée. Je dois donc l'augmenter. Ma recherche sur le Web a suggéré de changer le fichier .htaccess
auquel je n’ai pas accès, pour que cela ne fonctionne pas. D'autres ont suggéré que je devrais ajouter un fichier personnalisé php.ini
à ma racine qui ne fonctionnait pas. D'autres suggestions?
Vous devez définir la valeur de upload_max_filesize
et post_max_size
dans votre php.ini:
; Maximum allowed size for uploaded files.
upload_max_filesize = 40M
; Must be greater than or equal to upload_max_filesize
post_max_size = 40M
Après avoir modifié le (s) fichier (s) php.ini, vous devez redémarrer votre serveur HTTP pour utiliser la nouvelle configuration.
Si vous ne pouvez pas changer votre php.ini, vous n'avez pas de chance. Vous ne pouvez pas modifier ces valeurs au moment de l'exécution. les envois de fichiers supérieurs à la valeur spécifiée dans php.ini auront échoué au moment où l'exécution atteindra votre appel à ini_set
.
Vous pouvez le changer via un fichier .htaccess
.
Les fichiers .htaccess
sont stockés dans le même répertoire que vos fichiers .php
. Ils modifient la configuration de ce dossier et de tous les sous-dossiers. Vous les utilisez simplement en créant un fichier .htaccess
dans le répertoire de votre choix (ou en le modifiant s'il est présent).
Ce qui suit devrait vous permettre d’augmenter votre nombre maximum de téléchargements (si le fournisseur de serveur autorise PHP config de changer de configuration via .htaccess
).
php_value upload_max_filesize 40M
php_value post_max_size 42M
J'ai eu le même problème et j'ai créé un fichier .user.ini et je l'ai mis dans le répertoire dans lequel se trouvait le script de téléchargement. Ensuite, dans ce fichier, je définis ces deux valeurs:
upload_max_filesize = 40M
post_max_size = 40M
et cela a très bien fonctionné pour moi!
Vous pouvez également utiliser fonction ini_set (uniquement pour PHP version inférieure à 5.3):
ini_set('post_max_size', '64M');
ini_set('upload_max_filesize', '64M');
Comme @acme dit, dans PHP 5.3 et supérieur, ces paramètres sont des directives PHP_INI_PERDIR, ils ne peuvent donc pas être définis avec ini_set. Vous pouvez utiliser user.ini à la place.
Pour localiser le fichier ini, lancez d’abord
php -i | grep -i "loaded configuration file"
Puis ouvrez le fichier et changez
upload_max_filesize = 2M
post_max_size = 2M
en remplaçant le 2M par la taille souhaitée, par exemple 100M.
J'ai aussi un article de blog avec un peu plus d'informations http://www.seanbehan.com/how-to-increase-or-change-the-file-upload-size -in-the-php-ini-file-for-wordpress
J'ai le même problème dans le passé .. et je l'ai corrigé via le fichier .htaccess
Lorsque vous apportez des modifications à la configration php via .htaccess
, vous devez placer les paramètres de configuration dans la balise IfModule
, autrement que l'erreur interne du serveur survenir.
Ceci est un exemple, cela fonctionne très bien pour moi:
<IfModule mod_php5.c>
php_value upload_max_filesize 40M
php_value post_max_size 40M
</IfModule>
Et ceci est une référence php si vous voulez en savoir plus. http://php.net/manual/en/configuration.changes.php
J'ai résolu ce problème en créant un fichier nommé .user.ini
dans le répertoire où se trouvent les scripts de fichier PHP (cela signifie que tout script PHP de ce répertoire obtient la nouvelle limite de taille de fichier )
Le contenu de .user.ini
était:
upload_max_filesize = 40M
post_max_size = 40M
J'ai eu le même problème. J'ai essayé trois manières qui étaient habituellement suggérées:
aucun si ce qui a résolu mon problème. J'utilise GoDaddy et suis tombé sur une solution suggérée qui était:
Voilà! Maintenant, vous avez une taille de fichier de téléchargement maximale différente:)
plusieurs fois, j'ai remarqué que l'hébergement d'esprit partagé sur le site wit ne permet pas de modifier les paramètres des fichiers php.ini. on ne peut même pas créer un fichier .htaaccess du tout. dans une telle situation, on peut essayer de suivre les choses
ini_set('upload_max_filesize', '10M');
ini_set('post_max_size', '10M');
ini_set('max_input_time', 300);
ini_set('max_execution_time', 300);
les réponses sont un peu incomplètes, 3 choses à faire
dans php.ini de votre installation php (note: en fonction de votre choix pour CLI, Apache ou nginx, trouvez le bon php.ini à manipuler. Pour nginx, il est généralement situé dans /etc/php/7.1/fpm
où 7.1 dépend de votre version. Pour Apache généralement /etc/php/7.1/Apache2
)
post_max_size=500M
upload_max_filesize=500M
memory_limit=900M
ou définir d'autres valeurs. Redémarrez/rechargez Apache si vous avez Apache installé ou php-fpm pour nginx si vous utilisez nginx.
Eh bien, je voudrais ajouter mes 2 cents ici.
J'utilise l'hébergement Web partagé et je me suis souvent attaqué à ce problème, en essayant de le résoudre moi-même, mais en vain. Finalement, j'ai réussi à le résoudre en vérifiant diverses sources Web et en contactant mon fournisseur de services d'hébergement. Mes questions étaient "Comment modifier la valeur php memory_limit
dans l'hébergement Web partagé?", "Comment modifier la valeur php upload_max_filesize
dans l'hébergement Web partagé?", "Comment modifier la valeur php max_input_vars
dans l'hébergement Web partagé? "," Comment modifier la valeur php max_execution_time
dans l'hébergement Web partagé? "," Comment modifier la valeur php max_input_time
dans l'hébergement Web partagé? " et beaucoup d'autres en configurant ou en modifiant le fichier php.ini ou .htaccess
. J'ai essayé de les changer mais des problèmes ont surgi. Enfin, j'ai contacté mon fournisseur d'hébergement, et il s'avère que je mets mon php en natif, ils l'ont changé en php 5.6, voici leur réponse:
"Votre PHP a été défini sur le mode" natif ", ce qui signifie que vous ne pouvez pas remplacer ces valeurs. Je vous ai remplacé par" 5.6 ", vous devriez donc pouvoir vous y rendre."
Après avoir connecté mon site Web via ftp Filezilla, n'oubliez pas de configurer votre service ftp pour afficher les fichiers cachés et votre ordinateur local, car le fichier .htaccess
était caché dans mon ordinateur portable local et dans mon ordinateur. site Internet. Il était disponible dans le dossier public_html. Je viens de le télécharger et d’ajouter les codes suivants à la fin du fichier, puis de le télécharger à nouveau sur le serveur:
php_value memory_limit 256M
php_value post_max_size 256M
php_value upload_max_filesize 64M
php_value max_input_vars 1800
php_value max_execution_time 300
php_value max_input_time 300
Pour le moment, tout fonctionne correctement. Si vous rencontrez un problème, merci d'écrire ici et de me prévenir que je puisse modifier les codes indiqués ci-dessus. En passant, je télécharge également des images qui montrent le changement.
Une dernière chose que j'ai presque oublié de mentionner l’installation de ZipArchive sur votre service d’hébergement Web partagé, j’ai réussi à cocher cette exigence en allant simplement dans les paramètres php via mon cpanel, en cliquant sur les extensions du sélecteur php, puis en cochant la section Zip, c’est tout.
Merci.
PS: Je suis ouvert aux bonnes pratiques, et si vous voyez des mauvaises pratiques ici, faites-le-moi savoir, je vais essayer de les changer. Merci.
Aucune de ces solutions ne fonctionne pour moi! (déjà réglé à 32M par défaut). Le problème est dans la plupart des cas max_allowed_packet
Je travaille sur localhost et j'utilise MAMP
.
Voici des solutions;
1. Si vous n'avez pas my.ini
Ajouter
--max_allowed_packet=168435456
To
...\MAMP\bin\startMysql.sh
2. Si vous avez my.ini
Sous
[mysqld]
Ajouter
max_allowed_packet=100M
FAIT!
Cela devrait peut-être être un commentaire pour @ seanb123 et @ Fredrick Gauss commentant son commentaire, mais pour moi, dans Drupal 8.1 avec PHP 7, le fichier que je devais modifier se trouvait ici:
/etc/php/7.0/Apache2/php.ini
J'ai probablement modifié quatre autres fichiers php.ini, dont celui de mon système appelé "Fichier de configuration chargé" (php -i | grep -i "loaded configuration file"
) et celui qui se trouve sur la page info.php, mais aucun d'entre eux ne m'a aidé. La clé pour découvrir le bon chemin a été trouvée sur un site à partir de 2012. Ils ont dit que le chemin "/etc/php5/Apache2/php.ini"
était déprécié même RETOUR, mais il me donnait un indice pour le trouver. Pour PHP7, c'est un peu différent de PHP5 mais le concept est le même.
Peut-être que cela aidera certains imbéciles autrement impuissants comme moi.
Cela étant dit, la réponse au PO dans mon cas serait que quelqu'un avec des privilèges d'administrateur sur la boîte devrait le faire.
Le site qui m'a aidé: http://www.evilbox.ro/linux/remove-ispconfig-maximum-upload-size-of-2m-for-wordpress/
Ceci est également abordé ici: limite de taille de fichier d'importation dans PHPMyAdmin
EDIT: le texte intégral de ma note à moi-même:
Pour modifier la taille de téléchargement maximale, éditez upload_max_filesize et [si nécessaire?] Post_max_size dans /etc/php/7.0/Apache2/php.ini (ou dans les versions antérieures: /etc/php5/Apache2/php.ini)
/etc/init.d/Apache2 restart
EDIT AGAIN: puisque vous importez des fichiers volumineux, vous devrez peut-être modifier le délai d'attente pour leur traitement. Dans mon cas, le fichier nommé "config.default.php" a été trouvé dans /usr/share/phpmyadmin/libraries/config.default.php
avec la variable $cfg['ExecTimeLimit'] = 300;
J'ai modifié le mien en 900 pour une importation énorme, par exemple. Ensuite, vous devez redémarrer Apache
Trois choses que vous devez vérifier.
upload_max_filesize
, memory_limit
et post_max_size
dans le fichier de configuration php.ini exactement.
Ces trois paramètres limitent la taille maximale des données pouvant être soumises et gérées par PHP.
En règle générale, post_max_size
et memory_limit
doivent être supérieurs à upload_max_filesize
.
Donc, trois variables total vous devez vérifier pour être absolument sûr.
Avec WAMP
c'est très facile
WAMP
Icône> PHP> PHP Paramètres> upload_max_filesize = nM> n = (2 Mo, 4 M, 8 M, 16 M, 32 M, 64 M, 128 M, 256 M, 512 M, ou Choisissez (personnalisé)).
Service (s) recharger automatiquement.
Mais si vous avez vraiment non accès au serveur, vous pouvez explorer la possibilité d’écrire une API chunking
.