2016-09-17 119 views
0
public function newItem(Request $request){ 

     $image = $request->file('image'); 
     $img = time().'.'.$image->getClientOriginalExtension(); 
     $watermark = Image::make('images/watermark.png'); 
     $destinationPath = public_path('/products'); 
     $img = Image::make($image->getRealPath()); 
     $img->resize(300, 365, function ($constraint) { 
      $constraint->aspectRatio(); 
     })->insert($watermark, 'center'); 
     File::exists($destinationPath) or File::makeDirectory($destinationPath); 
     $img->save($destinationPath.'/'.$img); 

}無法將圖像數據寫入路徑。介入圖片Laravel 5.2

我不斷收到不能圖像數據寫入路徑 任何人都可以找出我做錯了嗎? 這個問題可能看起來是重複的,但類似問題中的其他建議對我無效。

在此先感謝

+0

你可以發佈你的錯誤堆棧嗎? – jaysingkar

+1

權限是否正確? –

+0

@RolfPedroErnst權限是正確的。 – Michel

回答

0

爲他人着想,可能有同樣的問題。這是我如何解決它:

$image = $request->file('image'); 
    $img = time().'.'.$image->getClientOriginalExtension(); 

$watermark = Image::make('images/watermark.png'); 
$destinationPath = public_path('/products'); 
Image::make($image->getRealPath())->resize(300, 365, function ($constraint) { 
    $constraint->aspectRatio(); 
})->insert($watermark, 'center')->save($destinationPath.'/'.$img); 

我正在犯的錯誤是將Image :: make()分配給一個變量。你可以在我的問題中查看我的代碼和上面的代碼。

0

試試這個代碼,它的工作對我來說

public function newItem(){ 

    $image = Input::file('image'); 
    $destinationPath = '/products'; 
    $img = time().'.'.$image->getClientOriginalExtension(); 
    $watermark = Image::make('images/watermark.png'); 
    $img = Image::make($image->getRealPath()); 
    $img->resize(300, 365, function ($constraint) { 
     $constraint->aspectRatio(); 
    })->insert($watermark, 'center'); 
    File::exists($destinationPath) or File::makeDirectory($destinationPath); 
    $img->save($destinationPath.'/'.$img); 
} 
+0

我正在使用5.2,不再支持輸入類。 – Michel

+0

它仍然支持我也有一個由5.2編寫的項目,它對我有用 – Nour

+0

不確定'Input'是否適用於5.2,但問題在於干預圖像。使用Laravel內置文件上傳功能非常完美。 '$ request-> file('image') - > move($ destinationPath,$ img);' – Michel

0

確保在laravel公用文件夾中創建提及的路徑文件夾(傳遞與圖像保存)。這將自動工作。