FCKeditor ASP.NET 上传附件研究
程序员文章站
2022-03-07 08:51:17
1,安装 安装就不多说了,除了一般的那个压缩包外,asp.net版的fcked...
1,安装
安装就不多说了,除了一般的那个压缩包外,asp.net版的fckeditor另有一个fckeditor.net下载包,里面有一个visual studio的solution,bin/release里有一个fredck.fckeditorv2.dll文件,可以直接copy到你的asp.net项目的bin文件夹里。
2,附件上传流程
fckeditor通过在编辑界面点击link或图片按钮打开一个模态对话框,在里面选择本地文件后上传。
这个对话框是fckeditor/editor/dialog/fck_image.html或fck_link.html。
对话框的js代码在fck_image和fck_link目录里,它们还会调用common/fck_dialog_common.js
上面这些都是客户端的事。
在fckeditor/editor/filemanager/upload/aspx下有一个孤独的upload.aspx,里面除了注释外只有一句话,它的code behind 的代码是在前面那个asp.net下载包里的uploader.cs,已经被编译进fredck.fckeditorv2.dll了。
3.修改uploader.cs
3.1 把upload.aspx上唯一的那行代码修改一下。
原版:< %@ page autoeventwireup="false" inherits="fredck.fckeditorv2.uploader" language="c#" % >
修改为:< % @ page autoeventwireup="false" codefile="upload.aspx.cs" inherits="fckupload" language="c#" % >
这样,upload.aspx就不再去fredck.fckeditorv2.dll寻找自己的behind code,而是在自己身边找.
3.2 从fckeditor.net压缩包里提取出uploader.cs,放在自己的asp.net项目的fckeditor目录里和upload.aspx放在一起。这样,uploader.cs就成了你的项目中的一部分,完全在你的控制之下。
打开uploader.cs,里面代码并不复杂。
首先,你应该加上自己的身份验证。
然后,httppostedfile ofile = request.files["newfile"];,获得上传文件,fckeditor的客户应当是一次只上传一个,不必考虑多个同时上传的情况。
获得文件大小,ofile.contentlength。
获得文件名,httpcontext.current.request.files[0].filename,
要检查后缀的话,system.io.path.getextension(filename);
保存起来,ofile.saveas(sfilepath);文件名和路径完全在你的控制中。
最后通过sendresults把错误代码发回去,如果上传成功,可以发0,然后是文件名和文件url。
3.3客户端
如果有兴趣,可以研究修改一下客户端的那些js。
4.部署
解压缩fckeditor.net压缩包,打开里面的solution,删掉uploader.cs,重新编译fredck.fckeditorv2.dll,新的dll会小一点,在我这儿是从36k变成32k。(注意要编译成release版)。
最后用新的dll替换自己的项目里的老的dll。
安装就不多说了,除了一般的那个压缩包外,asp.net版的fckeditor另有一个fckeditor.net下载包,里面有一个visual studio的solution,bin/release里有一个fredck.fckeditorv2.dll文件,可以直接copy到你的asp.net项目的bin文件夹里。
2,附件上传流程
fckeditor通过在编辑界面点击link或图片按钮打开一个模态对话框,在里面选择本地文件后上传。
这个对话框是fckeditor/editor/dialog/fck_image.html或fck_link.html。
对话框的js代码在fck_image和fck_link目录里,它们还会调用common/fck_dialog_common.js
上面这些都是客户端的事。
在fckeditor/editor/filemanager/upload/aspx下有一个孤独的upload.aspx,里面除了注释外只有一句话,它的code behind 的代码是在前面那个asp.net下载包里的uploader.cs,已经被编译进fredck.fckeditorv2.dll了。
3.修改uploader.cs
3.1 把upload.aspx上唯一的那行代码修改一下。
原版:< %@ page autoeventwireup="false" inherits="fredck.fckeditorv2.uploader" language="c#" % >
修改为:< % @ page autoeventwireup="false" codefile="upload.aspx.cs" inherits="fckupload" language="c#" % >
这样,upload.aspx就不再去fredck.fckeditorv2.dll寻找自己的behind code,而是在自己身边找.
3.2 从fckeditor.net压缩包里提取出uploader.cs,放在自己的asp.net项目的fckeditor目录里和upload.aspx放在一起。这样,uploader.cs就成了你的项目中的一部分,完全在你的控制之下。
打开uploader.cs,里面代码并不复杂。
首先,你应该加上自己的身份验证。
然后,httppostedfile ofile = request.files["newfile"];,获得上传文件,fckeditor的客户应当是一次只上传一个,不必考虑多个同时上传的情况。
获得文件大小,ofile.contentlength。
获得文件名,httpcontext.current.request.files[0].filename,
要检查后缀的话,system.io.path.getextension(filename);
保存起来,ofile.saveas(sfilepath);文件名和路径完全在你的控制中。
最后通过sendresults把错误代码发回去,如果上传成功,可以发0,然后是文件名和文件url。
3.3客户端
如果有兴趣,可以研究修改一下客户端的那些js。
4.部署
解压缩fckeditor.net压缩包,打开里面的solution,删掉uploader.cs,重新编译fredck.fckeditorv2.dll,新的dll会小一点,在我这儿是从36k变成32k。(注意要编译成release版)。
最后用新的dll替换自己的项目里的老的dll。
上一篇: CSS符合选择器
下一篇: fckeditor 插件实例 制作步骤