Modifier la taille maximale du fichier de téléchargement
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 permettant aux gens de télécharger des fichiers mp3 jusqu'à 30 Mo de gros. 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 disant que le fichier dépasse la taille maximale permise, donc je dois augmenter la taille. Mes recherches sur le web ont suggéré de changer le fichier .htaccess
auquel je n'ai pas accès, donc ça ne marchera pas. D'autres ont suggéré que je devrais ajouter un fichier personnalisé php.ini
à ma racine qui n'a pas fonctionné. Toutes les autres suggestions?
14 réponses
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 modification de php.fichier(s) ini, vous devez redémarrer votre serveur HTTP pour utiliser une nouvelle configuration.
si vous ne pouvez pas changer votre php.ini, vous êtes hors de la chance. Vous ne pouvez pas changer ces valeurs à l'exécution; charge un fichier plus grand que la valeur spécifiée dans php.ini aura échoué au moment où l'exécution atteint votre appel à ini_set
.
vous pouvez le modifier via un fichier .htaccess
.
.htaccess
sont stockés dans le même répertoire que vos fichiers .php
. Ils modifient la configuration pour ce dossier et tous les sous-dossiers. Il vous suffit de les utiliser en créant un fichier .htaccess
dans le répertoire de votre choix (ou de le modifier s'il est présent).
ce qui suit devrait vous permettre d'augmenter votre limite de téléchargement (si le fournisseur de serveur permet des modifications de configuration PHP 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 .utilisateur.ini fichier et le mettre dans le répertoire dans lequel le script d'upload était situé. Que dans ce fichier j'ai mis ces deux valeurs:
upload_max_filesize = 40M
post_max_size = 40M
et ça a bien marché pour moi!
vous pouvez également utiliser fonction ini_set (seulement pour la version PHP ci-dessous 5.3):
ini_set('post_max_size', '64M');
ini_set('upload_max_filesize', '64M');
comme @acme l'a dit, en php 5.3 et au-dessus de ces paramètres se trouvent les directives PHP_INI_PERDIR, donc elles ne peuvent pas être définies en utilisant ini_set. Vous pouvez utiliser de l'utilisateur.ini à la place.
pour localiser le fichier ini, Lancez d'abord
php -i | grep -i "loaded configuration file"
puis ouvrir le fichier et changer
upload_max_filesize = 2M
post_max_size = 2M
remplaçant le 2M par la taille que vous voulez, par exemple 100M.
j'ai un billet de blog sur avec un peu plus d'info aussi 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é par .htaccess
file
quand vous faites des changements sur la configration php par .htaccess
vous devriez mettre des configrations dans
IfModule
étiquette, autre que le erreur de serveur interne se produira.
C'est un exemple, il 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 appelé .user.ini
dans le répertoire où résident les scripts de fichier PHP (cela signifie que n'importe quel script PHP dans 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
eh Bien, je voudrais ajouter mes 2 cents ici.
j'utilise le webhosting partagé et j'ai abordé ce problème à plusieurs reprises, essayé de le résoudre par 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 puis-je changer la valeur de php memory_limit
dans l'hébergement web partagé?", "Comment puis-je modifier php valeur upload_max_filesize
en hébergement mutualisé?", "Comment puis-je modifier php valeur max_input_vars
en hébergement mutualisé?", "Comment puis-je modifier php valeur max_execution_time
en hébergement mutualisé?", "Comment puis-je modifier php valeur max_input_time
en hébergement mutualisé?"et bien d'autres encore en configurant ou en changeant php.fichier ini ou .htaccess
. J'ai essayé de les changer, mais des problèmes sont apparus. Enfin, j'ai contacté mon hébergeur, et il s'avère que j'ai mis mon php natif, ils l'ont changé de php 5.6, voici leur réponse:
"PHP a été réglé sur "native" mode qui signifie que vous ne pouvez pas remplacer ces valeurs. Je t'ai changée en "5.6" alors tu devrais être bon à aller."
après que j'ai connecté mon site Web par ftp Filezilla, aussi ne pas oublier de faire à la fois votre service ftp pour afficher des fichiers cachés, et votre ordinateur local pour le faire, parce que .htaccess
fichier était caché dans mon ordinateur portable local et dans mon site web. Il était disponible dans le dossier public_html, j'ai juste téléchargé et ajouté les codes suivants à la fin de le fichier et ensuite téléchargées vers 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
Tout fonctionne correctement pour le moment, si l'un d'entre vous surmonte certains problèmes s'il vous plaît écrivez ici et prévenez-moi afin que je puisse changer les codes ci-dessus. Au fait, j'ai aussi téléchargé quelques photos qui montrent le changement.
encore une chose que j'ai presque oublié de mentionner L'installation de zi-Parchive sur votre service d'hébergement web partagé, j'ai géré cette exigence de cocher en allant simplement aux paramètres php à travers mon cpanel, cliquez sur les extensions de sélecteur php et alors cochez la section zip, c'est tout.
Merci.
PS: je suis ouvert aux bonnes pratiques, et si vous voyez une mauvaise pratique ici s'il vous plaît faites le moi savoir, je vais essayer de les changer. Grâce.
j'ai eu le même problème. J'ai essayé trois façons qui étaient généralement suggérées:
- fonctions.php
- de php.ini
- .htaccess
aucun Si qui a résolu mon problème. J'utilise godaddy et suis tombé sur une solution suggérée qui était:
- got to Hébergement Web , puis Gérer
- Sous Logiciel , sélectionnez Sélectionnez la version de PHP
- sélectionner passer aux Options PHP trouvé dans le coin supérieur droit de la table en couleur de police: bleu
- sur la plus grande partie du bas, vous aurez probablement upload_max_filesize = 2m
- Maintenant, n'hésitez pas à le changer
- assurez-vous de cliquer sur le Enregistrer bouton!
- maintenant, allez dans votre panneau wp-admin, sélectionnez Media puis ajouter
voilà! Maintenant, vous avez une taille de fichier de téléchargement max différente:)
peut-être que cela devrait être un commentaire à @seanb123 et @Fredrick Gauss commentant son commentaire, mais pour moi dans Drupal 8.1 avec PHP 7 le fichier que j'avais besoin de modifier était situé ici:
/etc/php/7.0/apache2/php.ini
j'ai modelé probablement quatre autres php.les fichiers ini, y compris celui que mon système appelle le "fichier de Configuration chargé" ( php -i | grep -i "loaded configuration file"
) et celui trouvé sur l'info.php page mais aucun d'eux n'a aidé. La clé pour découvrir le bon chemin a été trouvée sur un site de 2012. Ils il a dit que le chemin "/etc/php5/apache2/php.ini"
était déprécié même à L'époque, mais il m'a donné 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 ça aidera un imbécile sans défense comme moi.
cela étant dit, la réponse à l'OP dans mon cas, serait que quelqu'un avec des privilèges d'administrateur sur la boîte auraient à le faire.
le site qui m'a aidé: http://www.evilbox.ro/linux/remove-ispconfig-maximum-upload-size-of-2m-for-wordpress /
cette question est également traitée ici: Import file size limit in PHPMyAdmin
EDIT: le texte intégral de ma note à moi-même:
afin de changer la taille maximale de téléchargement, éditez upload_max_filesize et [en cas de besoin?] post_max_size dans /etc/php/7.0/apache2/php.ini (ou dans versions plus anciennes: /etc/php5/apache2 / php.ini) 151960920"
/etc / init.d / apache2 redémarrage 151960920"
ÉDITER À NOUVEAU:
puisque vous importez de gros fichiers, vous devrez peut-être modifier le délai de traitement. Dans mon cas, le fichier s'intitulait " config.défaut.php "a été trouvé à /usr/share/phpmyadmin/libraries/config.default.php
avec la variable $cfg['ExecTimeLimit'] = 300;
J'ai changé le mien à 900 pour une grosse importation, par exemple.
Ensuite, vous devez redémarrer apache
aucune de ces solutions ne fonctionne pour moi!! (déjà défini à 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
à
...\MAMP\bin\startMysql.sh
2. Si vous avez mon.ini
sous
[mysqld]
ajouter
max_allowed_packet=100M
fait!
plusieurs fois j'ai remarqué que le site avec l'hébergement partagé ne permet pas de changer les paramètres en php.les fichiers ini. aussi, on ne peut même pas une cage .htaaccess file. 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);
trois choses à vérifier.
upload_max_filesize
, memory_limit
et post_max_size
dans le php.fichier de configuration ini exactement.
tous ces trois paramètres limitent la taille maximale des données qui peuvent être soumises et manipulées par PHP.
typiquement post_max_size
et memory_limit
doivent être plus grands que upload_max_filesize
.
donc trois variables total , vous devez vérifier pour être absolument sûr.
les réponses sont un peu incomplètes, 3 choses que vous devez faire
en php.ini de votre installation php (note: selon que vous le voulez 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 habituellement /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.