CKEditor 图片上传

24

我希望在我的项目中使用CKEditor,并需要CKFinder插件提供的图像上传支持,但我不需要CKFinder工具的其他部分,购买许可证有些过度。是否有人花时间实现了适用于ASP.NET MVC的自定义图像上传器,可与CKEditor 3配合使用?如果需要,我可以创建自己的上传器,只是想先在这里检查一下。

或者,是否有人知道一款与CKEditor/ Cute Editor相当的WYSIWYG编辑器,支持图像上传并可在ASP.NET MVC中使用?

4个回答

31

这是一个我最初为Fckeditor编写的ASP.NET WebForms图片上传器(因此主题不再匹配),我已经修改为与Ckeditor兼容。

https://github.com/mcm-ham/ckeditor-image-uploader

更新:我现在已经添加了一个示例,展示如何将此WebForms图片上传器添加到MVC项目中。

更新2:我现在已经添加了一个Razor Pages版本,可用于.NET Core MVC项目中。


3
这个示例是基于WebForms而不是MVC。 - Mike Gleason
3
这个图像加载器是基于WebForms开发的,但是在MVC项目中仍然可以使用。忽略如何将Ckeditor添加到页面中的细节,只需要复制Ckeditor文件夹下的ImageBrowser.aspx、LinkBrowser.aspx和config.js以及web.config中的两个appSettings即可。 - Michael
@Michael 当我包含dll时,我遇到了这个错误 Could not load file or assembly 'System.Web.Helpers, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. Strong name signature could not be verified. The assembly may have been tampered with, or it was delay signed but not fully signed with the correct private key. (Exception from HRESULT: 0x80131045)。这是一个针对.net framework 4.0的网站。你知道如何解决这个问题吗?感谢图片上传器。 - Monzir
@解决了,我确实根据我遇到的问题(http://aspnetwebstack.codeplex.com/workitem/1126)对库进行了自定义构建,但是我决定回到之前的版本并且放弃使用该库来消除依赖关系。 - Michael
请检查此网址:http://r2d2.cc/2010/11/03/file-and-image-upload-with-asp-net-mvc2-with-ckeditor-wysiwyg-rich-text-editor/。 - ujjaval
显示剩余5条评论

22

1
这个例子是MVC模式。唯一的问题是它不完整(控制器实际上没有保存文件)。但是,如果您在第6节“控制器...”中使用Phil在http://haacked.com/archive/2010/07/16/uploading-files-with-aspnetmvc.aspx中讨论的逻辑替换第6-10行(并修复第13和16行),则可以解决这个问题。 - Mike Gleason
谢谢 - 这个完全正确! - MojoDK
终于,在查看了许多插件后..!谢谢! - adelb
2
我已经创建了一个更新版本的Arturito解决方案,其中包括实际的文件上传功能:https://gist.github.com/afsharm/5660844 - Afshar Mohebi

2
如果您需要快速实现并拥有可靠的解决方案,您可以考虑使用托管解决方案来上传和存储CKEditor的图像,例如我们的插件:http://ckeditor.com/addon/uploadcare。请注意保留HTML标签。

2
我使用过 ckeditor 和 ASP.NET 的上传控件,但并没有专门用过 MVC。我还没有找到任何与 ckeditor 相媲美的东西,它甚至没有提供同样易于设置或具有相同功能的功能。
我不确定 MVC 的限制,但我通过使用以下内容设置了文件上传支持:
  • 主要参考了您提到的 CKFinder 插件的基本文档:

http://docs.cksource.com/CKEditor_3.x/Developers_Guide/File_Browser_%28Uploader%29

更好的文档说明如何实现上传组件: 您如何将自定义文件浏览器/上传器与CKEditor集成? 否则,我认为ckeditor只是将所有图像字节塞入请求对象中,并将其发送到配置为上传的页面。该页面可以获取这些字节并执行任何操作(例如将它们保存到文件系统、SQL服务器等)。这就是自定义实现的地方。
我使用了一个httphandler实现来代替使用页面进行上传。ckeditor重定向到的页面在完成上传后调用必要的javascript函数以指示上传状态,但实际的文件上传由handler控制。我使用的httphandler的基本实现位于:

http://darrenjohnstone.net/2008/07/15/aspnet-file-upload-module-version-2-beta-1/

希望这至少为您提供了一个起点。
更新:在寻找其他东西时发现了这个。没有深入研究,但似乎非常适合你。

http://interactiveasp.net/blogs/spgilmore/archive/2009/06/03/how-to-support-file-uploads-in-asp-net-mvc.aspx


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接