CKEditor,图像上传(filebrowserUploadUrl)
我正在使用 CKEditor,并且希望能够允许用户在文本编辑器中上传和嵌入图像...
以下 JS 是加载 CKEditor 的内容:
CKEDITOR.replace('meeting_notes', {
startupFocus: true,
toolbar: [
['ajaxsave'],
['Bold', 'Italic', 'Underline', '-', 'NumberedList', 'BulletedList', '-', 'Link', 'Unlink'],
['Cut', 'Copy', 'Paste', 'PasteText'],
['Undo', 'Redo', '-', 'RemoveFormat'],
['TextColor', 'BGColor'],
['Maximize', 'Image']
],
filebrowserUploadUrl: '/notes/add/ajax/upload-inline-image/index.cfm'
});
我遇到的问题是 filebrowserUploadUrl
。应该返回 CKEditor 以使此过程正常运行的 URL 是什么?
谢谢
I'm using CKEditor and would like to be able to allow users to upload and embed images in the Text Editor...
The following JS is what loads the CKEditor:
CKEDITOR.replace('meeting_notes', {
startupFocus: true,
toolbar: [
['ajaxsave'],
['Bold', 'Italic', 'Underline', '-', 'NumberedList', 'BulletedList', '-', 'Link', 'Unlink'],
['Cut', 'Copy', 'Paste', 'PasteText'],
['Undo', 'Redo', '-', 'RemoveFormat'],
['TextColor', 'BGColor'],
['Maximize', 'Image']
],
filebrowserUploadUrl: '/notes/add/ajax/upload-inline-image/index.cfm'
});
Where I'm stuck is with filebrowserUploadUrl
. What is that URL supposed to return to CKEditor to get this process to work?
Thanks
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(12)
也许为时已晚。您的代码是正确的,因此请再次检查 filebrowserUploadUrl 中的 url
和 Upload.php 文件
May be it's too late. Your code is correct so please check again your url in filebrowserUploadUrl
And the Upload.php file
新的 CKeditor 不包含文件管理器(CKFinder 是付费的)。
您可以在 CKeditor 中集成美观且易于实现的免费文件管理器。
http://labs. core Five.com/2009/10/30/an-open-file-manager-for-ckeditor-3-0/
您下载它,将其复制到您的项目中。
所有说明都在那里,但您基本上只需在代码中添加添加的 filemanager index.html 页面的路径即可。
支持大多数语言(php、asp、MVC && aspx - ashx,...))。
New CKeditor doesn't have file manager included (CKFinder is payable).
You can integrate free filemanager that is good looking and easy to implement in CKeditor.
http://labs.corefive.com/2009/10/30/an-open-file-manager-for-ckeditor-3-0/
You dowload it, copy it to your project.
All instructions are there but you basically just put path to added filemanager index.html page in your code.
Most languages are supported (php, asp, MVC && aspx - ashx,...)).
如果您不想购买 CKFinder,就像我不想购买 CKFinder 一样,那么我为 CKEditor 4 编写了一个非常可靠的上传器。它由第二个表单组成,放置在文本区域表单的正上方,并利用iframe hack,不管它的名字如何,它都是无缝且不引人注目的。
图像成功上传后,它将与已有的任何内容一起出现在您的 CKEditor 窗口中。
editor.php(表单页面):
这里是操作页面editaction.php,它执行实际的文件上传:
If you don't want to have to buy CKFinder, like I didn't want to buy CKFinder, then I wrote a very reliable uploader for CKEditor 4. It consists of a second form, placed immediately above your textarea form, and utilizes the iframe hack, which, in spite of its name, is seamless and unobtrusive.
After the image is successfully uploaded, it will appear in your CKEditor window, along with whatever content is already there.
editor.php (the form page):
And here is the action page, editaction.php, which does the actual file upload:
在 CKeditor 版本 4 中,编辑器期望从服务器端返回 JSON。旧版本可能需要 text/html 类型的响应,并带有 javascript 片段。请参阅此链接以获取相关说明 返回格式。在服务器端,如果您使用 C#,则可以创建如下数据模型:
并使用以下命令返回上传例程的结果:
虽然 .net 最有可能自动生成 json,但请确保返回内容类型应用程序/json.
对于那些想要检查上传的文件是否确实是图像文件的人来说,这是一个旁注;如果您使用Asp.net core,则需要以非标准方式安装system.drawing库。 以下是操作方法
另请注意,您可以在配置中更改发布类型.js 文件转换为 config.filebrowserUploadMethod='form'; ,而不是 config.filebrowserUploadMethod='xhr';
With CKeditor version 4 something, the editor expects JSON in return from the server side. Older version may need a text/html type of response, bearing a javascript snippet. See this link for an explanation of that Explanation of return formats. On the server side, and if you are using C#, you can make a data model like this:
And return the result from your upload routine with this:
Although .net most probably makes json of it automatically, ensure you are returning content-type application/json.
As a side-note for those wanting to check if the uploaded file really is an image file; if you are using Asp.net core, the system.drawing library needs to be installed in a non-standard way. Here's how to do that
Also note that you can change the type of posting in the config.js file to config.filebrowserUploadMethod='form'; , as opposed to config.filebrowserUploadMethod='xhr';
我最新的问题是如何在 CKEditor 中集成 CKFinder 进行图像上传。这是解决方案。
下载 CKEditor 并解压到您的 Web 文件夹根目录中。
下载 CKFinder 并使用 ckeditor 文件夹解压。
然后添加对 CKEditor、CKFinder 的引用并放入
到您的aspx页面。
在页面 OnLoad 事件后面的代码中添加此代码片段
编辑 Confic.ascx 文件。
(来源)
My latest issue was how to integrate CKFinder for image upload in CKEditor. Here the solution.
Download CKEditor and extract in your web folder root.
Download CKFinder and extract withing ckeditor folder.
Then add references to the CKEditor, CKFinder and put
to your aspx page.
In code behind page OnLoad event add this code snippet
Edit Confic.ascx file.
(source)
我最近也需要这个问题的答案,我花了几个小时才弄清楚,所以我决定用一些更新的信息和完整的答案来重新提出这个问题。
最终我偶然发现了本教程这很好地向我解释了这一点。为了 stackoverflow 的缘故,我将在这里重申该教程,以防它被删除。我还将包括我对教程所做的一些更改,使其成为更灵活的解决方案。
让我们
从 ckeditor 的任何版本开始,(基本、标准、完整、自定义)唯一的要求是您有插件 image 和 filebrowser
(截至撰写本文时,所有软件包都包含这 2 个插件(除基本插件外,但可以添加到基本插件中)
上传必要的 ckeditor 文件后,请确保您的安装正常运行。
确保链接 ckeditor.js 文件脚本
然后像这样初始化它:
CKEditor 配置
现在我们必须告诉我们要启用上传的CKEditor。您可以通过进入 ckeditor 文件夹并编辑“config.js”来完成此操作。 添加以下行:
我们需要在主函数 EG 内的某处
在此之后,CKEditor 配置就完成了!那很容易吧?
事实上,如果您现在再次测试图像上传,您将获得一个上传选项,尽管它还不能正常工作。
服务器配置
现在,您会注意到在这一步之前的步骤中,它以
upload.php
文件结尾。这是让我困惑的部分,我认为会有一些默认值可以与之配合,但据我所知没有。幸运的是,我找到了一个可行的方法,并且我对其进行了一些更改以允许更多自定义。因此,让我们转到您在上一步中提供的路径,为了本教程的连续性,我将使用
/uploader/upload.php
。在此位置创建一个名为(您猜对了)
upload.php
的文件。该文件将处理我们的文件上传。
我将放入我的自定义上传类,但它基于我找到并分叉的 这个 github。
默认情况下,此类设置为保留所有文件,而不覆盖。您可以尝试使用这些设置以更好地满足您的需求。
如果你注意到的话,有一段代码只是一个
if(true)
语句,显然它总是 true这是为了安全。您应该在此处检查上传的用户是否已登录/允许上传。如果您不担心这一点,您可以删除这些代码行或将其设置为
if(false)
(不推荐)您还需要编辑
$basePath
和$baseUrl
变量以满足您的服务器需求,否则它将无法工作。除非你想玩,否则下面的所有内容都可以保留。我希望这个小教程对某人有所帮助,因为我花了太长时间试图让它为自己工作,并且我希望我可以节省其他人一些时间。
我在上面链接的该教程中还有一些简洁的故障排除步骤,如果出现问题,可能可以帮助您找到问题所在。
I've recently needed an answer to this as well, and it took me several hours to figure it out, so I decided to resurrect this question with some more up-to-date information and a full answer.
Eventually I stumbled upon this tutorial that explained it to me pretty well. For stackoverflow sake, I will reiterate the tutorial here in case it is removed. I will also include some changes that I made to the tutorial that make this a more flexible solution.
Getting Started
Let's start with any of the releases of ckeditor, (Basic, standard, full, custom) the only requirement is that you have the addon image and filebrowser
(As of writing this, all packages include these 2 addons except for the basic one, but it can be added to the basic one)
After you upload necessary ckeditor files, make sure your installation is working.
Make sure you link your ckeditor.js file script
<script src="ckeditor/ckeditor.js"></script>
and then initialize it like so:CKEditor Configuration
Now we have to tell CKEditor that we want to enable uploading. You can do this by going into your ckeditor folder, and editing `config.js'. We need to add this line:
config.filebrowserUploadUrl = '/uploader/upload.php';
somewhere inside the main function E.GAfter this, CKEditor configuration is done! That was easy eh?
In fact, if you go and test your image uploading again now, you will get an upload option, though it won't quite work yet.
Server Configuration
Now you'll notice in the step before this one that it ends with an
upload.php
file. This is the part that stumped me, I figured there would be some default that can go with this but as far as I know there is not. Luckily, I found one that works, and I made some changes to it to allow more customization.So let's go to the path that you supplied in the last step, for continuity in this tutorial I am going to use
/uploader/upload.php
.At this location, make a file called (you guessed it)
upload.php
.This file is going to handle our file uploads.
I will put in my custom upload class, but it's based on this github that I found and forked.
By default this class is set to keep all files, without overwriting. You can play around with those settings to better suit your needs.
If you'll notice, there is a section of code that is just an
if(true)
statement, which is always true obviouslyThis is for security. This is where you should check if the user uploading is logged in/allowed to upload. If you're not worried about that, you can just remove these lines of code or set it to
if(false)
(NOT RECOMMENDED)You will also need to edit the
$basePath
and the$baseUrl
variables to fit your servers needs, or else it will not work. Everything below that can be left alone unless you want to play around.I hope that this little tutorial helped someone, as I worked far too long on trying to get this to work for myself, and I hope I can save someone else some time.
There is also some neat troubleshooting steps on that tutorial which I linked above, that may be able to help you find what's going wrong if something is.
对于那些在 Grails ckeditor 插件中遇到同样问题的人,请提供
filebrowserUploadUrl:'/YourAppName/ck/ofm'
来调用处理图像上传的函数。如果您想使用自己的自定义函数,您可以提供该文件路径。
For those have same problem in Grails ckeditor plugin Give
filebrowserUploadUrl:'/YourAppName/ck/ofm'
to invoke the function that handles image uploade.if you want use your own customized function you can give that file path.
这个简单的演示可以帮助您获得您想要的东西。
这是您要上传图像的 html/php 代码:
这是 upload.php 文件的代码。
注意:不要忘记在同一文件夹中创建一个文件夹“upload”,并将所有三个文件保留在同一目录中。稍后,一旦您了解其工作原理,您就可以更改它们的目录。另外不要忘记按将其发送到服务器,如下图所示。
This simple demo may help you in getting what you want.
Here is the html/php code from where you want to upload the image:
and here is the code for upload.php file.
Note: Don't forget to create a folder "upload" in the same folder and keep all the three files in the same directory. Later you may change their directories once you understand how it works. Also not forget to press send it to the server as shown in picture below.
该 URL 将指向您自己的服务器端文件上传操作。该文档没有详细介绍,但幸运的是 Don Jones 填补了这里的一些空白:
如何将自定义文件浏览器/上传器与 CKEditor 集成?
另请参阅:
http://zerokspot.com/weblog/2009/09/09/custom-filebrowser-callbacks-ckeditor/
That URL will points to your own server-side file upload action. The documentation doesn't go into much detail, but fortunately Don Jones fills in some of the blanks here:
How can you integrate a custom file browser/uploader with CKEditor?
See also:
http://zerokspot.com/weblog/2009/09/09/custom-filebrowser-callbacks-ckeditor/
您可以使用此代码
You can use this code
要上传图像,只需从桌面或任何地方拖放即可,只需使用 ctrl+v 复制图像并将其粘贴到文本区域即可实现此目的
To upload an image simple drag and drop from ur desktop or from anywhere n u can achieve this by copying the image and pasting it on the text area using ctrl+v
该 URL 应指向您可能拥有的自定义文件浏览器 URL。
我已经在我的一个项目中做到了这一点,并且我在我的博客上发布了关于此主题的教程
http://www.mixedwaves.com/2010/02/integrating-fckeditor-filemanager-in-ckeditor/
该教程提供了有关如何集成如果您不想自己制作,CKEditor 中内置了 FCKEditor 的文件浏览器。它非常简单。
The URL should point to your own custom filebrowser url you might have.
I have already done this in one of my projects, and I have posted a tutorial on this topic on my blog
http://www.mixedwaves.com/2010/02/integrating-fckeditor-filemanager-in-ckeditor/
The tutorial gives a step by step instructions about how to integrate the inbuilt FileBrowser of FCKEditor in CKEditor, if you don't want to make our own. Its pretty simple.