Laravel 5路径不可写。使用干预/图像类

时间:2015-06-08 06:09:35

标签: php laravel-5

这是我在这里的第一个问题,但是:)或者可能没那么多:(。当我尝试在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');

    }
}

1 个答案:

答案 0 :(得分:0)

哦,我想通了,windows不喜欢在$ filename前加上日期函数。在Windows中忘了关于filenaming规则。希望这也有所帮助,所以我不会删除它。