Как использовать загрузку изображений Redactor в laravel 4?

Я пытаюсь использовать Redactor с Laravel4. Я могу успешно редактировать свою текстовую область, но не могу работать с загрузкой изображений. Когда я пытаюсь загрузить файл, я получаю ошибку 500, а в инструментах разработчика я вижу

Request URL:http://projemiz.dev/admin/blogs/3/postimage/3

Это моя ссылка для загрузки фотографий редактора:

<script>$('#editor').redactor({ imageUpload: "postimage/{{$post->id}}"});</script>

Мои маршруты находятся внутри префиксов:

# Blog Management
Route::group(array('prefix' => 'blogs'), function()
{
    Route::get('/', array('as' => 'blogs', 'uses' => 'Controllers\Admin\BlogsController@getIndex'));
    Route::get('create', array('as' => 'create/blog', 'uses' => 'Controllers\Admin\BlogsController@getCreate'));
    Route::post('create', 'Controllers\Admin\BlogsController@postCreate');
    Route::get('{blogId}/edit', array('as' => 'update/blog', 'uses' => 'Controllers\Admin\BlogsController@getEdit'));
    Route::post('{blogId}/edit', 'Controllers\Admin\BlogsController@postEdit');
    Route::post('{blogId}/postimage','Controllers\Admin\BlogsController@postImage');
    Route::get('{blogId}/delete', array('as' => 'delete/blog', 'uses' => 'Controllers\Admin\BlogsController@getDelete'));
});

и мой контроллер:

public function postImage($blogId) {

    $path = base_path().'/public/uploads/img/posts/' . (int)$blogId;

    $image = Input::file('photo');

    if (Input::hasFile('photo'))
    {
    $fileName = $file->getClientOriginalName();

    $image->move($path,$fileName);
        $image = new Image;
        $image->name = $fileName.name;
        $image->save();
        // resizing an uploaded file


        Image::make($image->getRealPath())->resize(300, 200)->save($path.'thumb-'.$fileName);
        Image::make($image->getRealPath())->resize(300, 200)->save($path.'thumb-'.$fileName);


        //File::delete( $path . '/' . Input::file('file.name'));*/
    }

}

Может ли кто-нибудь помочь мне исправить мою ссылку внутри редактора?


person ytsejam    schedule 24.05.2013    source источник
comment
Что говорит вам журнал вашего веб-сервера?   -  person Antonio Carlos Ribeiro    schedule 24.05.2013
comment
В access_logs я могу найти 127.0.0.1 - - [24/May/2013:17:08:19 +0300] POST /admin/blogs/3/postimage/3 HTTP/1.1 500 37974 ... внутри error_logs нет ошибок.   -  person ytsejam    schedule 24.05.2013


Ответы (1)


Попробуйте изменить свой js-скрипт следующим образом:

<script>$('#editor').redactor({ imageUpload: "/{{$post->id}}/postimage"});</script>

В функции загрузки вернуть путь к изображению после загрузки

public function postImage($blogId) 
{

    $path = base_path().'/public/uploads/img/posts/' . (int)$blogId;

    $image = Input::file('photo');

    if (Input::hasFile('photo'))
    {
        $fileName = $file->getClientOriginalName();

        $image->move($path,$fileName);
        $image = new Image;
        $image->name = $fileName.name;
        $image->save();

        // resizing an uploaded file
        Image::make($image->getRealPath())->resize(300, 200)->save($path.'thumb-'.$fileName);
        Image::make($image->getRealPath())->resize(300, 200)->save($path.'thumb-'.$fileName);

        // Return Image path as JSON
       if ($file->move($path, $fileName))
       {
           return Response::json(array('filelink' => $path . '/' . $fileName));
       }
    }
}
person mogetutu    schedule 24.05.2013
comment
Я использовал ваш контроллер. но ссылка не отправляет мне правильный адрес - person ytsejam; 24.05.2013
comment
приведенный выше фрагмент кода является функцией, а не контроллером. Вы говорите, что ответ Json или URL-адрес Redactor imageUpload не работают? В чем ошибка? - person mogetutu; 24.05.2013
comment
это одно из моих действий контроллера, я просто забыл его написать. Я предполагаю, что у редактора imageupload есть проблема. все еще пытаюсь ее решить. - person ytsejam; 25.05.2013