Existem documentos lá fora, mas todos eles perdem alguns detalhes.
Aqui está:
Crie uma rota
Exemplo:
Route::post('/upload_image', function() {
$CKEditor = Input::get('CKEditor');
$funcNum = Input::get('CKEditorFuncNum');
$message = $url = '';
if (Input::hasFile('upload')) {
$file = Input::file('upload');
if ($file->isValid()) {
$filename = $file->getClientOriginalName();
$file->move(storage_path().'/images/', $filename);
$url = public_path() .'/images/' . $filename;
} else {
$message = 'An error occured while uploading the file.';
}
} else {
$message = 'No file uploaded.';
}
return '<script>window.parent.CKEDITOR.tools.callFunction('.$funcNum.', "'.$url.'", "'.$message.'")</script>';
});
Adicione o seguinte à configuração do CKEditor:
// Construct path to file upload route
// Useful if your dev and prod URLs are different
var path = CKEDITOR.basePath.split('/');
path[ path.length-2 ] = 'upload_image';
config.filebrowserUploadUrl = path.join('/').replace(//+$/, '');
// Add plugin
config.extraPlugins = 'filebrowser';
Parabéns! Agora você tem uma guia Upload na caixa de diálogo da imagem.
Coisas que me levaram algum tempo:
- Em nenhum lugar foi mencionado que você precisa do
filebrowser
plugin. - Certifique-se de que o URL aponta para a rota exata. Dependendo de suas configurações,
/upload_image/
pode redirecionar para o/upload_image
qual interromperá a solicitação POST.