web-dev-qa-db-fra.com

PostTooLargeException dans ValidatePostSize.php line 22 laravel

J'essaie de télécharger un formulaire contenant des images aussi. Quand je le soumets. il montre cette erreur

PostTooLargeException in ValidatePostSize.php line 22:

Comment résoudre ce problème?

6
Alex

Vérifiez les paramètres suivants dans votre fichier php.ini.

J'ai eu ce problème à plusieurs reprises et c'est généralement parce que max_file_size est défini sur 2M par défaut. 

  • max_file_size
  • upload_max_filesize
  • post_max_size

** Edit On m'a demandé comment valider la taille du fichier à l'aide de la méthode validate dans Laravel avant que le fichier ne soit envoyé à PHP et pour alerter l'utilisateur du fichier volumineux. Vous pouvez et voici comment: 

1. Créez une alerte d'erreur pour l'écran Voici à quoi ressemble le mien. J'utilise le style bootstrap 3. Ajoutez quelque chose comme ceci dans votre mise en page (elle n'apparaîtra que si vous avez une erreur).

    @if (count($errors) > 0)
        <div class="alert alert-danger">
            <strong>Whoops!</strong> There were some problems with your input.<br><br> 
                <ul>
                    @foreach ($errors->all() as $error)
                        <li>{{ $error }}</li>
                    @endforeach
                </ul>
        </div>
@endif

2. Identifiez le validateur que vous utiliserez dans les classes de validation prédéfinies ** Accédez à votre projet/Ressources/lang/en/validators.php. Vous trouverez toutes les validations disponibles dans laravel. Vous verrez qu'ils ont ceci dedans là:

'max'                  => [
    'numeric' => 'The :attribute may not be greater than :max.',
    'file'    => 'The :attribute may not be greater than :max kilobytes.',
    'string'  => 'The :attribute may not be greater than :max characters.',
    'array'   => 'The :attribute may not have more than :max items.',
],

C'est la règle de validation que j'ai utilisée pour vérifier la taille du fichier.

** 4. Créez votre dossier de demande **

php artisan make:request yourRequest

** 5. mettre à jour votre fichier de demande ** Accédez à votre/project/app/Http/Requests/yourRequest.php et ajoutez ce qui suit dans la méthode rules 'nom_fichier' => 'max: 10' actualisez 10 à la valeur de votre limite en kilo-octets :

    public function rules()
    {
        return [ 'profile_pic' => 'required|image|mimes:jpg|max:10',
        ];
    }

6. Faites votre demande avec le fichier de demande qui gère vos règles. Donc, dans ce scénario, nous l'avons nommé yourRequest, votre méthode de sauvegarde aurait donc:

public function upload(Requests\yourRequest $request)

Assurez-vous également que votre contrôleur utilise la classe de demandes qu'il contient de la manière suivante:

use App\Http\Requests;

Si vous suivez ceci, vous aurez une erreur qui ressemble à ceci:  enter image description here

L'autre option consiste à réduire le fichier (dans le cas d'une image) à l'aide de la classe Image. 

11
Dom

Vous devez utiliser la validation côté client sur le fichier de téléchargement. S'il existe plusieurs fichiers pour les options de téléchargement, vous devez insérer des données via javascript ou une par une.

Exemple de code:

 $(document).on("change", "#imageUploader", function(e) {
      if(this.files[0].size > 7244183)
      {
        alert("The file size is too larage"); 
        document.getElementById('#imageUploader').value = "";
      }
});
2
Naveen dev