2014-04-14 14 views
9

Tôi nhận được lỗi này: LogicException: Không thể đoán loại mime vì không có người đoán nào (Bạn đã bật phần mở rộng php_fileinfo?) Trong khi cố gắng tải lên một hình ảnh. Tôi đã bật phần mở rộng php_fileinfo và cũng khởi động lại máy chủ web Wamp nhưng tôi vẫn không thể giải quyết vấn đề này. Tôi đang thiếu gì? Cảm ơnLaravel 4 - không có dự đoán nào có vấn đề

Dưới đây là mã của tôi:

Models: 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'); 
} 

}

Bộ xử lý: 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(); 
} 

Xem: 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() }} 
+0

cố gắng thay đổi giới hạn tải lên tệp trong tệp cấu hình php của bạn – phoops

+0

@ edvinas.me Giới hạn kích thước tệp bạn đã đề cập là upload_max_filesize? Tôi đặt nó thành giá trị lớn upload_max_filesize = 200M nhưng vẫn không thể giải quyết vấn đề này. Loại kỳ lạ. – user3227412

+0

Bạn có đặt số lần trong mã của mình không? như thế này: ''file' => 'mimes: jpeg, bmp, png | max: 3000''. Thật khó để cung cấp thêm bất kỳ đề xuất nào mà không thấy mã. – phoops

Trả lời

1

Tôi nghĩ là lỗi của Máy chủ web WAMP. Tôi chuyển sang XAMPP Web Server và nó hoạt động tốt.

Cảm ơn rất nhiều bằng cách này.

+1

FYKI, tôi gặp sự cố với XAMPP, tôi đã xóa nhận xét từ phần mở rộng dòng của tệp xampp/php/php.ini = php_fileinfo.dll và hơn apache được khởi động lại, Nó hoạt động cho tôi. –

+1

Cảm ơn @Unfragile, đó là vấn đề. – Codebeat

25

bỏ ghi chú dòng này trong php.ini vào thư mục php.

extension = php_fileinfo.dll

và khởi động lại máy chủ (nhập 'phục vụ nghệ nhân php' một lần nữa). Bằng cách này sẽ hoạt động!

+0

Chạy XAMPP - Đã làm việc cho tôi – Vigs

+0

Tôi có thể xác nhận việc bỏ ghi chú 'extension = php_fileinfo.dll' đã hoạt động trên WAMP đối với tôi, cảm ơn bạn – haakym

5

Mở file php.ini và bạn có thể tìm thấy; extension = php_fileinfo.dll tháo bán coloumn để extension = php_fileinfo.dll sẽ làm việc một cách hoàn hảo sau đó khởi động lại máy chủ của bạn apache hoặc xampp, Wampp bất cứ môi trường bạn đang sử dụng

Các vấn đề liên quan