2016-09-19 22 views
0

什麼是我的圖片存儲到數據庫中正確的方式如何存儲不帶路徑的形象的名字 - laravel

我應該存儲圖像的填充路徑,像這樣images/pagesImages/image.jpg或正確的做法是隻存儲圖像名稱並寫入圖像應該出現的路徑?

我是新來的Laravel,當我更新我發現的完整路徑被存儲在數據庫

我只能存儲映像名稱不帶路徑上的圖像,我在頁面上更新的形象?

這裏是我的控制器

public function editAboutImage() 
    { 
     $id = 1; 
     $image = Text_area::find($id); 

     $validation = Validator::make(Input::all(), [ 
      'image' => 'sometimes|image|mimes:jpeg,png|min:1|max:250' 
     ]); 

     if ($validation->fails()) { 
      return Redirect::to('edit-about')->with('errors', $validation->errors()); 
     } 
     if (Input::hasFile('image')) { 
      $file = Input::file('image'); 
      $destination_path = 'images/pagesImages/'; 
      $filename = str_random(6) . '_' . $file->getClientOriginalName(); 
      $file->move($destination_path, $filename); 
      $image->image = $destination_path . $filename; 
      $image->save(); 
     } 
     return Redirect::to('edit-about')->with('message', 'You just updated an image!'); 
    } 

澄清我的兩個問題

  1. 這是更好的方式來存儲圖像我應該把它存儲與路徑或只是圖像名稱。
  2. 如果我只需要存儲圖像名稱而沒有路徑,我應該如何處理我的控制器。

千恩萬謝

+0

只是形象的名字會更好。 –

+0

我個人只是保存圖像的名稱。除非你在各種目錄上有圖像,否則我想不出保存整個路徑的好處。我不明白第二個問題。 – cjmling

+0

@Sanzeeb Aryal謝謝我以爲相同,你可以幫助編輯上面的控制器來存儲圖像名稱 –

回答

3
  1. 只是店面形象的名字而已。因爲,如果你要改變路徑,那麼你可以很容易地通過文件名得到。如果還將文件更改爲新路徑。
  2. 你可以用你的模型簡單地存儲文件(我的建議)

    模型中的

    ,創建一個變量和一個函數存儲圖像
    對於模型: -

    public static $imagePath = 'images/profile_images';  
    
    public function getImageAttribute($value)  
    { 
        if($value != ''){ 
         return self::getImagePath . '.' . $value; 
        } 
    } 
    
    public function getImagePath()  
    { 
         return self::imagePath; 
    }  
    

    對於控制器: -

    得到像往常一樣的文件名,
    在存儲

    $file->move($this->getImagePath(), $filename);   
    $image->image = $filename;   
    

    試試這個,說結果

+0

會給它嘗試 –

+0

我不能理解 –

+0

我在我的項目中使用這段代碼。所以你可以使用它並嘗試。 –