2017-03-01 110 views
1

我試圖上傳文件,但它總是在我的控制器中返回null。下面是我得到的錯誤:Laravel 5.2上傳文件始終爲空

FatalThrowableError in FileController.php line 25: 
Fatal error: Call to a member function getClientOriginalExtension() on null 

<form enctype="multipart/form-data" method="post" action="{{route('upload')}}"> 
    <label for="file_upload">Upload file</label> 
    <input id="file_upload" type="file" name="file"> 
    <input type="submit" value="Upload"> 
</form> 

路線(不調用任何中間件)

Route::post('file/upload', [ 
    'as' => 'upload', 
    'uses' => '[email protected]', 
]); 

控制器

public function handleUpload(Request $request) 
{ 
    $dir = sys_get_temp_dir() . DIRECTORY_SEPARATOR . 'adp'; 
    if (!file_exists($dir)) mkdir($dir); 

    $extensions = AppPlatform::lists('package_extension')->toArray(); 

    $extension = $request->file('file')->getClientOriginalExtension(); // this line throws the nullreference exception 
    ... 
} 

我可能忽略了一些非常明顯的東西,但似乎無法找到問題出在哪裏。

編輯

當我看到在Chrome的開發者工具,我可以看到該文件在POST請求正確發送的請求。

------WebKitFormBoundaryTLB02G6sLMEE2fMM 
Content-Disposition: form-data; name="file"; filename="app-release.apk" 
Content-Type: application/octet-stream 


------WebKitFormBoundaryTLB02G6sLMEE2fMM-- 
+0

嘗試在'handleUpload()'中轉儲'$ _FILES'。什麼是輸出? –

+0

你有什麼東西在dd($ request-> file('file'))? – sunilwananje

+0

@VaibhavrajRoham返回一個空數組 – Fester

回答

0

隨着Muthu17的幫助下,我發現,upload_max_filesizepost_max_size已經被重置爲2M,而不是我輸入的值。所以我添加了這個到我的網絡服務器(Heroku)配置,現在它的工作原理!

upload_max_filesize = 1024M 
post_max_size = 1024M