2017-09-04 43 views
0

我试图在我的网站上传软件安装文件(.exe)。当我试图上传文件,如5 MB或10 MB时,我没有收到任何错误。但是,试图上传大文件时,45/50MB的大小,我得到这个错误Laravel在上传大文件时出现错误

(1/1) FatalThrowableError

Call to a member function getClientOriginalExtension() on null 

我已经改变了我的php.ini这样的:

upload_max_filesize = 900M 

这里是我的文件上传表格

<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> 

这里是我的控制器:

public function google(Request $request){ 

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

} 

更新:

我已经增加post_max_size大于upload_max_filesize。但现在收到这个错误

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

你有没有在你的php.ini改变“的post_max_size”到的东西比接受的文件大小更高? – Classified

+0

你没有得到图像数据。在执行该代码之前执行某种验证。 – Frondor

+0

我已将php.ini中的'post_max_size'更改为高于接受的文件大小。现在我收到此错误(1/1)FatalErrorException 允许的内存大小为134217728字节在MediaFileUpload中耗尽(试图分配62973720字节) .php(第246行) –

回答

1

默认的php.ini memory_limit的是128 MB。你应该:

  • 优化你的代码使用在php.ini数据
  • 变化memory_limit的正常量更高的价值,我不 建议在所有 - 你的方法,你会打这个墙一次 再

你应该参考这answer。我建议你监视你的应用程序,看看是否有潜在的内存泄漏并优化你的代码。

标准文件上传需要记住的关键之一是您的服务器需要处理该文件,暗示为什么它占用大量内存。

希望能帮助您走上正确的道路。

+0

尽管此链接可能回答问题,但最好在此处包含答案的基本部分,并提供供参考的链接。如果链接页面更改,则仅链接答案可能会失效。 - [来自评论](/ review/low-quality-posts/17233643) – MikeT

+0

在这里添加答案。 – Classified

1

在php.ini中增加“memory_limit的”