Laravel 4 - 没有猜猜可用的问题

use*_*412 9 mime wamp fileinfo laravel-4

我得到这个错误:LogicException:在尝试上传图像时,无法猜测mime类型,因为没有猜测器可用(你启用了php_fileinfo扩展吗?).我启用了php_fileinfo扩展,并重新启动了Wamp Web服务器,但我仍无法解决此问题.我错过了什么?谢谢

以下是我的代码:

型号:Product.php

class Product extends Eloquent {

protected $fillable = array('category_id', 'title', 'description', 'price', 'availability', 'image');

public static $rules = array(
    'category_id'=>'required|integer',
    'title'=>'required|min:2',
    'description'=>'required|min:20',
    'price'=>'required|numeric',
    'availability'=>'integer',
    'image'=>'required|image|mimes:jpeg,jpg,bmp,png,gif|max:3000',
);

public function category() {
    return $this->belongsTo('Category');
}
Run Code Online (Sandbox Code Playgroud)

}

控制器:ProductsController.php

 public function postCreate() {
    $validator = Validator::make(Input::all(), Product::$rules);

    if($validator->passes()) {
        $product = new Product;
        $product->category_id = Input::get('category_id');
        $product->title = Input::get('title');
        $product->description = Input::get('description');
        $product->price = Input::get('price');

        $image = Input::file('image');
        $filename = date('Y-m-d-H:i:s')."-".$image->getClientOriginalName();
        Image::make($image->getRealPath())->resize(468,249)->save('public/img/products/'.$filename);
        $product->image = 'img/products/'.$filename;
        $product->save();

        return Redirect::to('admin/products/index')
            ->with('message', 'Product Created');
    }

    return Redirect::to('admin/products/index')
        ->with('message', 'Something went wrong')
        ->withErrors($validator)
        ->WithInput();
}
Run Code Online (Sandbox Code Playgroud)

视图:Index.blade.php

  {{ Form::open(array('url'=>'admin/products/create', 'files'=>true)) }}
    <p>
        {{ Form::label('category_id', 'Category') }}
        {{ Form::select('category_id', $categories) }}
    </p>
    <p>
        {{ Form::label('title') }}
        {{ Form::text('title') }}
    </p>
    <p>
        {{ Form::label('description') }}
        {{ Form::textarea('description') }}
    </p>
    <p>
        {{ Form::label('price') }}
        {{ Form::text('price', null, array('class'=>'form-price')) }}
    </p>
    <p>
        {{ Form::label('image', 'Choose an image') }}
        {{ Form::file('image') }}
    </p>
    {{ Form::submit('Create Product', array('class'=>'secondary-cart-btn')) }}
    {{ Form::close() }}
Run Code Online (Sandbox Code Playgroud)

小智 25

将php.ini中的这一行取消注释到php文件夹中.

延长= php_fileinfo.dll

并重新启动服务器(再次输入'php artisan serve').这种方式会起作用!


ujw*_*kal 5

打开php.ini文件,你可以找到; extension = php_fileinfo.dll删除half-coloumn到extension = php_fileinfo.dll将完美地工作然后重新启动你的apache服务器或xampp,wampp你正在使用的任何环境


use*_*412 1

我认为是WAMP Web Server 的Bug。我切换到 XAMPP Web 服务器并且工作正常。

顺便说一句,非常感谢。