FCKeditor ASP.NET 上传附件研究
发布时间:2023-12-30 05:27:22
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。


猜你喜欢
- 1.安装插件,在非虚拟环境conda install nb_condaconda install ipykernel2、安装ipykerne
- 本文实例讲述了PHP面向对象程序设计类的定义与用法。分享给大家供大家参考,具体如下:<?phpclass Person {  
- 前言;Python是一种非常具有表现力的语言,它提供了不同的结构来简化开发人员的工作。 该列表是python提供的最受欢迎的数据结构之一。
- JSON(JavaScript Object Notation, JS 对象标记)是一种轻量级的数据交换格式,通常用于服务端向网页传递数据
- 字符串 -- 不可改变的序列如同大多数高级编程语言一样,变长字符串是 Python 中的基本类型。Python 在“后台”分配内存以保存字符
- >>> a = 2.5 >>> b = 2.5 >>> c = b >>&
- 前言一道题目是实现一个反转字符串的函数,具体如下:编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 char[] 的形式给
- 关于 Go 中 Map 类型和 Slice 类型的传递Map 类型先看例子 m1:func main() { m := make
- 缺省的Perl调试器就是perl解释器本身,另外还有图形界面的调试器。由于在开发程序时一般都使用telnet访问服务器,因此本文主要为大家介
- 本文实例讲述了Python面向对象程序设计中类的定义、实例化、封装及私有变量/方法。分享给大家供大家参考,具体如下:1. 定义类python
- 二是什么时候CPU是空闲的?空闲是一个相对的标准。有时会CPU使用率30%以下可以定义为空闲;而有时候CPU使用率只有不到60%,就是空闲。
- 在 Go 里面的协程执行实际上默认是没有严格的先后顺序的。由于 Go 语言 GPM 模型的设计理念,真正执行实际工作的实际上是 GPM 中的
- 常用的函数和方法在Python中,os库提供了大量与操作系统相关的函数和方法。以下是一些常用的函数和方法及其详细介绍、案例和完整注释:get
- 本文实例为大家分享了python正则提取电话的具体代码,供大家参考,具体内容如下主要用到正则import reimport xlrddef
- 最近安装了丘比特笔记本(jupyter notebook),各种快捷键和编辑模式用的非常舒服。但是我的默认浏览器是chrome每次回车换行都
- 本文实例讲述了js实现九宫格图片半透明渐显特效的方法。分享给大家供大家参考。具体实现方法如下:<html><title&g
- 在视图中也有笨方法可以从数据库中获取数据。 很简单: 用现有的任何 Python 类库执行一条 SQL 查询并对结果进行一些处理。在本例的视
- 第一步 关闭代码拼写检查setting–>Inspections–>Spelling–>Typo,取消勾选:第二步 关闭代
- 前言Golang中当程序发生致命异常时(比如数组下标越界,注意这里的异常并不是error),Golang程序会panic(运行时恐慌)。当程
- 代码:hello.py#!/usr/bin/python# coding: utf-8# hello.pydef application(e