2016-12-13 79 views
2

我有一個窗體可以在表單的不同部分接受多個圖像(徽標,封面,縮略圖)。我正嘗試將這些內容上傳到Amazon S3。在我的控制器:Laravel 5.2 multiple file_get_contents()not working on prod

public function store(Request $request){ 

    Storage::disk('s3')->put(
    $request->user()->id.'/thumbnail.png', 
    file_get_contents($request->file('thumbnail')), 
    'public' 
); 
    Storage::disk('s3')->put(
    $request->user()->id.'/cover.png', 
    file_get_contents($request->file('cover')), 
    'public' 
); 
    Storage::disk('s3')->put(
    $request->user()->id.'/logo.png', 
    file_get_contents($request->file('logo')), 
    'public' 
); 

} 

我能夠在本地主機上這個上傳的圖片的上傳,並獲取URL,但我得到「的file_get_contents:文件名不能爲空錯誤」生產這與LAMP一個Amazon Linux實例。我究竟做錯了什麼?

回答

3

你應該alwyas檢查,如果文件被上傳:

if ($request->hasFile('thumbnail')) 
    Storage::disk('s3')->put(
     $request->user()->id.'/thumbnail.png', 
     file_get_contents($request->file('thumbnail')), 
     'public' 
    ); 
} 

https://laravel.com/docs/5.3/requests#files

+0

,所以我上傳的蓋(約7MB)一個大的圖像文件,所以我推測上傳無效,最終沒沒有上傳'logo'。圍繞爲什麼fileupload爲大文件失敗的任何想法?我的代碼適用於小圖像大小,否則。 –

+0

您可能會在[這裏]找到答案(https://laracasts.com/discuss/channels/general-discussion/file-validation-failing-on-larger-files?page=1) –