2017-09-04 1 views
0

J'essaye de télécharger le fichier d'installation de logiciel (.exe) dans mon site. Quand j'essaye de télécharger le dossier comme 5 mb ou 10 mb, je n'obtiens aucune erreur. en essayant de télécharger un grand fichier, la taille de 45/50Mo, je reçois cette erreurLaravel obtenir une erreur lors du téléchargement de gros fichier

(1/1) FatalThrowableError

Call to a member function getClientOriginalExtension() on null 

J'ai changé php.ini comme ceci:

upload_max_filesize = 900M 

Voici mon dossier télécharger le formulaire

<form action="/upload" method="post" enctype="multipart/form-data"> 
    {{ csrf_field() }} 
    Product name: 
    <br /> 
    <input type="text" name="name" /> 
    <br /><br /> 
    Files : 
    <br /> 
    <input type="file" name="pdf" multiple /> 
    <br /><br /> 
    <input type="submit" value="Upload" /> 
</form> 

Voici mon contrôleur:

public function google(Request $request){ 

      $file = $request->file('pdf'); 
      $destinationPath = 'uploads'; 
      $file->move($destinationPath,$file->getClientOriginalName()); 

} 

Mise à jour:

J'ai augmenté post_max_size plus de upload_max_filesize .Mais maintenant obtenir cette erreur

(1/1) FatalErrorException 
Allowed memory size of 134217728 bytes exhausted (tried to allocate 62973720 bytes) 
in MediaFileUpload.php (line 246) 
+0

Avez-vous changé « post_max_size » dans votre php.ini à quelque chose de supérieur à la taille du fichier accepté? – Classified

+0

Vous n'obtenez pas les données d'image. Effectuez une sorte de validation avant d'exécuter ce code. – Frondor

+0

J'ai changé 'post_max_size' dans mon php.ini à plus élevé que la taille de fichier admise.Maintenant je reçois cette erreur (1/1) FatalErrorException La taille de mémoire permise de 134217728 bytes s'est épuisée (a essayé d'allouer 62973720 bytes) dans MediaFileUpload .php (ligne 246) –

Répondre

1

php.ini par défaut memory_limit est de 128 Mo. Vous devez soit:

  • Optimiser votre code pour utiliser une quantité normale de données
  • changement memory_limit dans php.ini à valeur plus élevée que je ne recommande du tout - avec votre approche, vous frapperez cette mur une fois nouveau

Vous devez vous référer à ce answer. Je vous recommande de surveiller votre application et de voir s'il y a une fuite de mémoire potentielle et d'optimiser votre code. L'un des éléments clés dont vous devez vous rappeler lors du téléchargement de fichiers standard est que votre serveur doit gérer le fichier, ce qui explique pourquoi il consomme beaucoup de mémoire.

Espérons que cela vous aide sur le bon chemin.

+0

Bien que ce lien puisse répondre à la question, il est préférable d'inclure ici les parties essentielles de la réponse et de fournir le lien pour référence. Les réponses à lien uniquement peuvent devenir invalides si la page liée change. - [De l'avis] (/ review/low-quality-posts/17233643) – MikeT

+0

Ajouté la réponse ici. – Classified

1

En augmentation php.ini « memory_limit »