当我使用ckeditor
上传图片并将其附加到发布时我的上传图片功能在控制器工作正常没有任何问题,但当我想将上传的图像返回到该时,ckeditor无法得到,例如,这是我的代码:
控制器:
public function uploadImageContent()
{
$this->validate(request(), [
'upload' => 'mimes:jpeg,jpg,gif,png'
]);
$file = request()->file('upload');
$filename = $file->getClientOriginalName();
$year = Carbon::now()->year;
$imagePath = "/uploads/post_images/{$year}/";
if (file_exists(public_path($imagePath) . $filename)) {
$filename = Carbon::now()->timestamp . '.' . $filename;
}
$file->move(public_path() . $imagePath, $filename);
$url = $imagePath . $filename;
return "<script>window.parent.CKEDITOR.tools.callFunction(1,'{$url}','')</script>";
}
此功能正常,我在console
或network
return "<script>window.parent.CKEDITOR.tools.callFunction(1,'{$url}','')</script>";
应该是返回路径,但不起作用。
视图:
<script>
$(function () {
CKEDITOR.replace('description', {
height: '200px',
extraPlugins: 'forms',
filebrowserUploadUrl:'/dashboard/administrator/attachImage',
filebrowserImageUploadUrl:'/dashboard/administrator/attachImage'
});
});
</script>
路线:
Route::group(['namespace' => 'Dashboard', 'prefix' => 'dashboard'], function () {
$this->group(['prefix' => 'administrator'], function () {
...
$this->post('/attachImage', 'ContentsController@attachImage');
...
});
ContentsController:
class ContentsController extends Controller
{
...
public function attachImage()
{
$this->uploadImageContent(request()->all());
}
}
答案 0 :(得分:3)
您的代码对我不起作用。我观察到的是,您没有在CKEditorFuncNum
处嵌入1
(服务器将其作为POST变量接收)作为callFunction()
的第一个参数。我用1
取代了$request->CKEditorFuncNum
,然后我使用了return
语句而不是echo
,
这是您的代码:
echo "<script>window.parent.CKEDITOR.tools.callFunction(1,'{$url}','')</script>";
和
这是我的代码:
return "<script>window.parent.CKEDITOR.tools.callFunction('{$request->CKEditorFuncNum}','{$url}','')</script>";
我正在使用Laravel 5.8
希望对别人有帮助。
答案 1 :(得分:0)
使用echo
代替return
来解决我的问题:
echo "<script>window.parent.CKEDITOR.tools.callFunction(1,'{$url}','')</script>";
我在laravel 5.5