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。
猜你喜欢
- 在基于互联网的应用中,程序经常需要自动地发送电子邮件。如:一个网站的注册系统会在用户注册时发送一封邮件来确认注册;当用户忘记登陆密码的时候,
- 参考 https://books.agiliq.com/projects/django-admin-cookbook/en/lat
- 装饰器通用模型def wrapper(fn): def inner(*args, **kwargs):  
- 使用input和raw_input都可以读取控制台的输入,但是input和raw_input在处理数字时是有区别的纯数字输入当输入为纯数字时
- 一、标识符何为标识符?标识符是用来标识某个实体的一个符号。在编程语言中,标识符是计算机语言中作为名字的有效字符串集合。标识符是用户编程时使用
- 译者按:原文写于2011年末,虽然文中关于Python 3的一些说法可以说已经不成立了,但是作为一篇面向从其他语言转型到Python的程序员
- python的线程有一个类叫Timer可以,用来创建定时任务,但是它的问题是只能运行一次,如果要重复执行,则只能在任务中再调用一次timer
- 1、手动调参,但这种方法依赖于大量的经验,而且比较费时。许多情况下,工程师依靠试错法手工调整超参数进行优化,有经验的工程师可以在很大程度上判
- python对多国语言的处理是支持的很好的,它可以处理现在任意编码的字符,这里深入的研究一下python对多种不同语言的处理。有一点需要清楚
- 在上一篇文章中,我们介绍了如何使用源码对TensorBoard进行编译教程,没有定制需求的可以直接使用pip进行安装。TensorBoard
- 众所周知,FileSystemObject(fso)组件的强大功能及破坏性是它屡屡被免费主页提供商(那些支持ASP)的禁用的原因,我整理了一
- 1、前言通常,我们在开发过程中,难免需要去部署我们的服务,但是,我们应该如何去做呢?如果主机重启了,服务怎么自己启动呢?可能你的心里已经有了
- 1. 代码完整的源代码:import torchfrom torch import nn# 定义一个LSTM模型class LSTM(nn.
- 在ASP中,除了ADODB、Scripting 等一些常用组件外,我们还可以用微软的ActiveX方法来轻松捕获哟: <%u
- 如下所示:#!/usr/bin/env python# -*- coding: utf-8 -*-# @Time : 2018/7/13 1
- 本文实例讲述了php常用字符串长度函数strlen()与mb_strlen()用法。分享给大家供大家参考,具体如下:int strlen (
- 去腾讯招聘网的信息,这个小项目有人做过,本着一个新手学习的目的,所以自己也来做着玩玩,大家可以参考一下。这里使用的是调用cmdline命令来
- 本文实例讲述了Python使用matplotlib实现基础绘图功能。分享给大家供大家参考,具体如下:一个简单的例子# -*- coding:
- 一、前言三目运算符,又称条件运算符,是计算机语言(c,c++,java等)的重要组成部分。它是唯一有3个操作数的运算符,有时又称为三元运算符
- 本文主要介绍了Python pandas 重命名索引和列名称的实现,分享给大家,具体如下:df=pd.DataFrame(np.arange