2015-04-25 5 views
0

Я хочу переопределить загрузку изображения в summernote с помощью метода laravel 5 ajax, но я не могу заставить его работать.РЕШЕННЫЙ! Laravel 5 override summernote Загрузка изображения

Вот мой метод PHP

public function ajaxImage() 
{ 
    $file = Input::file('image'); 
    $destinationPath = public_path(); 
    $filename = $file->getClientOriginalName(); 
    if(Input::file('image')->move($destinationPath, $filename)) { 
     echo $destinationPath.$filename; 
    } 
} 

и вот мой JQuery код:

$(document).ready(function(){ 
      $('#description').summernote({ 
       height: 300, 

       onImageUpload: function(files, editor, welEditable) { 
        sendFile(files[0], editor, welEditable); 
       } 
      }); 
      function sendFile(file, editor, welEditable) { 
       var data = new FormData(); 
       data.append("file", file); 
       var url = '/articles/ajaximage'; 
       $.ajax({ 
        data: data, 
        type: "POST", 
        url: url, 
        cache: false, 
        contentType: false, 
        processData: false, 
        success: function(url) { 
         alert('Success'); 
         editor.insertImage(welEditable, url); 
        } 
       }); 
      } 
     }); 

и я получаю сообщение об ошибке в консоли:

POST http://marcus.dev/articles/ajaximage 500 (Internal Server Error)

+0

Найти свое решение с этим .... http://www.somrat.info/summarnote-image-upload-with-laravel/ –

ответ

1

Я узнал, как .. его a " TokenMismatchException в VerifyCsrfToken " проблема.

Источник: http://laravel.io/forum/01-30-2015-laravel5-tokenmismatchexception-in-verifycsrftoken

Я добавил это в заголовке моего главного вида:

<meta name="csrf-token" content="{{ csrf_token() }}" /> 

и это в сценарии до document.ready

$.ajaxSetup({ 
      headers: { 
       'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') 
      } 
     }); 

и, наконец, метод PHP :

Route::post('ajaximage', function(){ 

$file = Request::file('file'); 
$destinationPath = public_path().'/uploads/'; 
$filename = $file->getClientOriginalName(); 
$file->move($destinationPath, $filename); 
echo url().'/uploads/'.$filename; 

});

1

Что касается версии summernote 0.6.9, мы не можем использовать редактор в функции обратного вызова.

вместо

editor.insertImage(welEditable, url); 

Я использовал

$('#summernote').summernote('editor.insertImage', url); 

Я не знаю, если есть уборщик версия, но это, кажется, работает.