【发布时间】:2015-05-06 21:01:30
【问题描述】:
我正在尝试 CKEditor 4.5.0 BETA,因为它允许我在所有浏览器中粘贴剪贴板中的图像,但我找不到任何有关文件上传 API 的文档(新?), This Link 中的示例使用 CKFinder,但我没有,我需要在 PHP 中创建自己的服务器端代码(我正在使用 Larevel 4)。
当我尝试上传文件时,请求中的唯一参数是文件(名为“upload”),如何将我的 CKEditor 实例与我的服务器连接?也许缺少什么?
CKEDITOR.replace('newticket', {
extraPlugins : 'uploadimage,image2',
uploadUrl : '/ckeditor/newticket/uploads',
height : '200px',
toolbar : [
{ name: 'clipboard', items: [ 'Cut', 'Copy', 'Paste', 'PasteText', 'PasteFromWord', '-', 'Undo', 'Redo' ] },
{ name: 'basicstyles', items: [ 'Bold', 'Italic', 'Underline' ] },
{ name: 'lists', items: [ 'NumberedList', 'BulletedList', 'Outdent', 'Indent', 'Blockquote' ] },
{ name: 'insert', items: ['Link', '-', 'HorizontalRule'] },
{ name: 'font', items: [ 'Format', '-', 'TextColor', 'BGColor'] }
]
});
编辑 1
我在我的服务器端(Laravel 4)中使用此代码,文件已上传,CKeditor 显示一条消息,说明文件已正确上传,但未将 img 标签添加到文档中
public function uploadFilesFromCKeditor() {
if(Input::hasFile('upload')) {
$fileName = sha1(time() . Input::file('upload')->getClientOriginalName()) . '.' . Input::file('upload')->getClientOriginalExtension();
$success = Input::file('upload')->move(public_path() . '/ckeditor/uploads', $fileName);
if($success) {
$jsonResponse = array(
'fileName' => $fileName,
'url' => 'ckeditor/uploads/' . $fileName,
'uploaded' => 'true',
'error' => array(
'message' => ''
)
);
} else {
$jsonResponse = array(
'fileName' => Input::file('upload')->getClientOriginalName(),
'url' => '',
'uploaded' => 'false',
'error' => array(
'message' => 'Error msg'
)
);
}
return Response::json($jsonResponse);
} else {
$jsonResponse = array(
'fileName' => '',
'url' => '',
'uploaded' => 'false',
'error' => array(
'message' => 'error msg'
)
);
return Response::json($jsonResponse);
}
}
【问题讨论】:
标签: file-upload ckeditor