2017-02-10 59 views
0

存儲的文件,我得到了一個名爲「圖片」文件上傳表單。窗體工作,我得到的圖像,但由於某種原因,它不存儲。這是我用來存儲圖像的代碼:Laravel不要求

$path = $request->image->store('storage/uploads'); 

在這之前我檢查

$request->hasFile('image') 

後來我節省$路徑。 Path是成功保存,當我檢查一下它的真正的存儲/上傳/ radnomid但沒有文件

+0

嘗試'$請求 - >圖像 - >動(的DestinationPath,文件名)' – raz

回答

0

對不起張貼我自己的答案,但問題是,在默認情況下laravel公共磁盤不上傳到公共目錄。需要設置進行更改如下: 配置/ filesystems.php

'public' => [ 
       'driver'  => 'local', 
       'root'  => public_path(), 
       'visibility' => 'public', 
      ], 

,然後簡單地說:

$path = $request->image->store('storage/uploads','public'); 
0

確保要包括的multipart/form-data的的加密類型。您可以直接添加屬性表單,或者你可以,如果你使用的是表單輔助函數中添加「文件」 =>真。

這是使用自帶的Laravel 5.

public function processForm(Request $request) 
{ 
    if($request->hasFile('image')) { 
     $file = $request->file('image'); 
     // Now you have your file in a variable that you can do things with 
    } 
} 
0

你可以用這個代碼嘗試上傳功能的傳統方式,

Image::make($request->file('image'))->save('upload_path/filename.jpg')); 

這裏是這個形象包裝的完整文檔。 http://image.intervention.io/

0

嘗試做這樣的

if ($request->hasFile('image')) { 
    $image = $request->file('image'); 
    $filename = time() . '.' . $image->getClientOriginalExtension(); 
    $location = public_path('images/comment/' . $filename); 
    Image::make($image)->resize(800, 600)->save($location); 
} 
0

我想你應該試試這個:

Image::make($request->file('image'))->save(storage_path('uploads/image.jpg')); 

希望這個作品的您!

0

如果您filesystems.php CONFIGS是默認然後

$path = $request->image->store('storage/uploads'); 

保存不存水/上傳操作,但在存儲/應用/存儲/上傳您的文件。

和當前公認的答案是不是真的好,因爲要用於存儲模板文件不是用戶上傳public_path()之意。根據官方文檔上傳應在存儲/文件夾中使用公共/存儲符號鏈接/但不能在公共/。

閱讀更多https://laravel.com/docs/5.4/filesystem#the-public-disk