Laravel 5 覆盖 summernote 图片上传
Laravel 5 override summernote Image upload
我想用 laravel 5 方法 ajax 覆盖 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(内部服务器错误)
我发现了如何..它是
"TokenMismatchException in VerifyCsrfToken" problem.
来源:http://laravel.io/forum/01-30-2015-laravel5-tokenmismatchexception-in-verifycsrftoken
我在主视图的 header 中添加了这个:
<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;
});
至于summernote 0.6.9版本我们不能再在回调函数中使用editor了
而不是
editor.insertImage(welEditable, url);
我用过
$('#summernote').summernote('editor.insertImage', url);
我不知道是否有更清洁的版本,但它似乎有效。
我想用 laravel 5 方法 ajax 覆盖 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(内部服务器错误)
我发现了如何..它是
"TokenMismatchException in VerifyCsrfToken" problem.
来源:http://laravel.io/forum/01-30-2015-laravel5-tokenmismatchexception-in-verifycsrftoken
我在主视图的 header 中添加了这个:
<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;
});
至于summernote 0.6.9版本我们不能再在回调函数中使用editor了
而不是
editor.insertImage(welEditable, url);
我用过
$('#summernote').summernote('editor.insertImage', url);
我不知道是否有更清洁的版本,但它似乎有效。