Доброго времени суток. Очень долго искал решение задачи загрузки картинок на сайт по средством редактора summernote. Нашел здесь -
ссылка.
Для полноты картины выкину код.
App.php
Route::post('/supfile', 'Admin\tosaController@supfile');
Скрипт
$(document).ready(function() {
$('#summernote3').summernote({
height: 230,
minHeight: null,
maxHeight: null,
focus: false,
callbacks: {
onImageUpload: function(files, editor, welEditable) {
for (var i = files.length - 1; i >= 0; i--) {
sendFile(files[i], this);
}
},
},
dialogsFade: true,
fontNames: ['Roboto Light', 'Roboto Regular', 'Roboto Bold'],
toolbar: [
['style', ['style']],
['font', ['bold', 'underline', 'clear']],
['color', ['color']],
['para', ['ul', 'ol', 'paragraph']],
['table', ['table']],
['insert', ['link', 'video', 'picture']],
['view', ['fullscreen', 'codeview', 'help']]
],
});
});
function sendFile(file, el) {
var form_data = new FormData();
form_data.append('file', file);
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
}
});
$.ajax({
data: form_data,
type: "POST",
url: '/supfile',
cache: false,
contentType: false,
enctype: 'multipart/form-data',
processData: false,
success: function(url) {
$(el).summernote('editor.insertImage', url);
}
});
}
Controller
public function supfile(Request $request){
$file = $request->File('file');
$fileArray = array('image' => $file);
$rules = array(
'image' => 'mimes:jpeg,jpg,png,gif|required|max:10000' // max 10000kb
);
$validator = Validator::make($fileArray, $rules);
if ($validator->fails()){
$error = 'Invalid file type / size';
return $error;
}else{
$uploads_dir = public_path().'/images/cae/';
$extension = Input::file('file')->getClientOriginalExtension();
$tmp_name = $_FILES["file"]["tmp_name"];
$name = $filename = date('Ymdhis').'_'.$_FILES["file"]["name"].'.' . $extension;
move_uploaded_file($tmp_name, "$uploads_dir/$name");
return "/images/cae/".$name;
};
}
При попытке загрузить файл вылазит ошибка
POST st.local/supfile 500 (Internal Server Error)
Все советы с этой ошибкой сводятся к тому что у меня проблемы с csrf-token, хотя другой аякс запрос отлично работает. При поытке зайти напрямую
st.local/supfile 500 - уходит в 404.