这是我在这里的第一个问题,但是:)或者可能没那么多:(。当我尝试在Laravel5中保存我的图像实例时,无论如何我得到了以下错误。路径存在且可写,我已经通过了代码一遍又一遍。帮助:(。我在Windows 8.1上运行wampserver。
无法将图像数据写入路径 (F:\瓦帕\ WWW \ pinkworld \公共/图像/产品/ 2015-06-08-05:51:14-IMG_8224.JPG)
这就是我的控制器代码
use App\Product;
use App\Http\Requests;
use App\Http\Controllers\Controller;
use App\Category;
use Carbon\Carbon;
use App\Http\Requests\ProductRequest;
use Image;
class ProductsController extends Controller {
/**
*
*Protect our post request
*
*
*
*/
public function __construct(){
//$this->beforeFilter(crsf, array('on' => 'post'));
}
/**
*
*Show all products
*
*@return Response
*
*/
public function index(){
$categories = array();
foreach(Category::all() as $category){
$categories[$category->id] = $category->name;
}
$products= Product::all();
return view('products.index',compact('products','categories'));
}
/**
*
*Shows form for creating a single form
*
*@return Response
*
*/
public function create(){
return view('products.index');
}
public function store(ProductRequest $request)
{
//inserting product values
$product= new Product();
$product->category_id = $request['category_id'];
$product->title = $request['title'];
$product->description = $request['description'];
$product->price = $request['price'];
//Using Request::file the file that didnt pass through the request file for validation
//Using $request->file('filename') gets me the file after it has been validated
//
$image= $request->file('image');
$filename = date('Y-m-d-H:i:s'). "-" .$image->getClientOriginalName();
$path = public_path('images/products/'.$filename);
$relative_path = 'images/products/'.$filename;
Image::make($image->getRealPath())->resize(468,249)->save($path);
$product->image = 'images/products/'.$filename;
$product->save();
\Session::flash('message','Product Created');
return redirect('admin/products');
}
/**
*
*Show single product
*
*param interger $id
*
*@return Response
*
*/
public function show($id){
$product = Product::findOrFail($id);
return view('admin/products',compact('product')); //$contact->title
}
/**
*
*Delete single product
*
*param interger $id
*
*@return Response
*
*/
public function destroy($id){
File::delete('public/'.$product->image);
$product= Product::find(Request::get('id'));
\Session::flash('message','Product Deleted');
if ($product){
$product->delete();
}
return redirect('admin/products');
}
public function postToggleAvailability(){
$product= Product::find( $request->get('id'));
if ($product){
$product->availability = $request['availability'];
$product->save();
\Session::flash('message','Product Updated');
return redirect('admin/products');
}
\Session::flash('message','Invalid Product');
return redirect('admin/products');
}
/**public function edit($id)
{
$contact = Contact::findOrFail($id);
return view('contacts.edit',compact('contact'));
}**/
public function update($id, productRequest $request)
{
$product = Product::findOrFail($id);
$product->update($request->all());
return redirect('products');
}
}
答案 0 :(得分:0)
哦,我想通了,windows不喜欢在$ filename前加上日期函数。在Windows中忘了关于filenaming规则。希望这也有所帮助,所以我不会删除它。