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?

417
php
demandé sur Paolo Forgia 2010-02-02 17:00:46

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 .

Voir la Description de base de php.directives ini .

735
répondu meagar 2014-06-13 13:19:51

vous pouvez le modifier via un fichier .htaccess .

Les fichiers

.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
123
répondu Andrew Moore 2010-02-02 16:05:08

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!

53
répondu user1641252 2013-09-25 03:08:01

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.

46
répondu Balder 2015-04-06 14:24:15

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

38
répondu seanb123 2015-09-03 08:43:50

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

35
répondu Eyad Farra 2018-01-30 06:57:55

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
11
répondu Pearce 2016-08-15 20:21:50

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

enter image description here

enter image description here

enter image description here

enter image description here

enter image description here

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.

3
répondu garakchy 2017-02-03 01:55:41

j'ai eu le même problème. J'ai essayé trois façons qui étaient généralement suggérées:

  1. fonctions.php
  2. de php.ini
  3. .htaccess

aucun Si qui a résolu mon problème. J'utilise godaddy et suis tombé sur une solution suggérée qui était:

  1. got to Hébergement Web , puis Gérer
  2. Sous Logiciel , sélectionnez Sélectionnez la version de PHP
  3. sélectionner passer aux Options PHP trouvé dans le coin supérieur droit de la table en couleur de police: bleu
  4. sur la plus grande partie du bas, vous aurez probablement upload_max_filesize = 2m
  5. Maintenant, n'hésitez pas à le changer
  6. assurez-vous de cliquer sur le Enregistrer bouton!
  7. 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:)

3
répondu nrmb 2017-04-05 16:31:25

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

2
répondu seizethecarp 2018-09-25 13:13:15

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!

1
répondu ErcanE 2014-12-08 15:26:57

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);
1
répondu The EasyLearn Academy 2017-08-30 08:31:55

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.

0
répondu prosti 2017-02-23 20:07:58

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.

0
répondu Toskan 2018-04-12 21:43:44