2016-07-06 155 views
1

我與存儲::放($文件,$內容)文件只是一個簡單的doubts-無法保存在laravel 5.2

我試圖存儲在使用Storage門面存儲我的圖片和視頻文件。 但我很困惑,因爲我無法將該文件存儲在存儲文件夾中。 我使用的干預形象包裝,當我只是試圖救我修改$文件

Storage::put($file); 它拋出錯誤2參數丟失等

我到處找在網上關於這個問題,我發現

Storage::put($file , $content) 現在什麼是在這種情況下,當我試圖將圖像保存到我的文件夾的$內容?請給我例 -

還有一件事

我如何返回文件,它可以從不同的域訪問的完整路徑。 我是你使用「公」,「本地」基本上是在您將其存儲在哪個磁盤建立一個API :)

感謝您的幫助提前

+1

https://laravel.com/docs/5.2/filesystem'放(文件名,目錄)' –

+0

在文檔Mike B鏈接(搜索頭像)中有一個保存二進制文件的例子。 – herrjeh42

+0

我已經做過,但仍然困惑的是什麼$內容是在Storage :: put('file.jpg',$ content); :( – Rahul

回答

0

\Storage::disk('local')->put($file_name, $the_file); 

可以在config/filesystems.php文件中查看磁盤設置。

另外$content是你想要保存的實際項目/文件。這裏是什麼,我最近做了一個例子..

// the $image is from $request->file('file'); 
    $thefile = \File::get($image); 
    $file_name = $title->slug . '-' . $year . '.jpg'; 
    \Storage::disk('local')->put($file_name, $thefile); 
+0

哇,謝謝soooo多西蒙,它只是像魅力工作..非常感謝您的時間。:) – Rahul

+0

不是問題,很高興幫助 –

2

Storage::put($filename, $content)的第二個參數是指原始信息,構成了該文件。對於文本文件,$content將是文本,而對於圖像來說,它將是組成圖像的原始信息。

由於您使用的是干預圖像,因此您可以使用encode()方法來獲取存儲所需的數據。

// Assuming that $file is your Intervention Image instance 
// Example 1: Save as the default type (JPEG) 
Storage::put('public/images/my_profile.jpeg', $file->encode()); 

// Example 2: Save as a PNG 
Storage::put('public/images/my_profile.png', $file->encode('png')); 

在問候你如何來指代路徑作爲URL的問題,一定要遵循從文檔下面的代碼片段:

注:當使用本地驅動程序,確保在public/storage中創建一個指向storage/app/public目錄的符號鏈接。

之後,你就可以從storage/app/public從瀏覽器訪問一切都像這樣:

echo config('app.url') . str_replace('/public/', '/', Storage::url('public/images/my_profile.png')); 
// Echoes "http://localhost/storage/images/my_profile.png" 
+0

我也試過這個,但是我得到一個錯誤''image-> encode()'''錯誤 - '''調用成員函數編碼()字符串'''我已經得到了我想要的西蒙回答這將是一個偉大的獎金:) – Rahul

+0

@Rahul我假設你的實例干預圖像是'$圖像';在重新閱讀你的問題後,你的干預圖像實例是'$ file'嗎?如果是這樣,用'$ file'替換'$ image' –

+0

克里斯,現在它工作得很好,非常感謝你的幫助,感謝你的時間:) – Rahul