惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

G
Google Developers Blog
有赞技术团队
有赞技术团队
WordPress大学
WordPress大学
博客园 - 司徒正美
D
Docker
B
Blog
V
Visual Studio Blog
Blog — PlanetScale
Blog — PlanetScale
U
Unit 42
S
SegmentFault 最新的问题
小众软件
小众软件
J
Java Code Geeks
美团技术团队
腾讯CDC
MyScale Blog
MyScale Blog
爱范儿
爱范儿
H
Help Net Security
宝玉的分享
宝玉的分享
Microsoft Azure Blog
Microsoft Azure Blog
A
About on SuperTechFans
Google DeepMind News
Google DeepMind News
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
博客园 - 三生石上(FineUI控件)
博客园 - 【当耐特】

博客园 - ansonpan

戒烟第五天! 戒烟第二天! 戒烟第一天! 扩展fckeditor的上传图片和上传文件功能! (二) 翟鸿燊-《国学应用大智慧》笔记 Sage Accpac ERP 销售订单模块激活问题! Asp.net 团队博客地址 SQL2000游标引发的性能问题! datalist嵌套TreeView 收发邮件的一些心得。 数组遍历判断两个输入框之间是否有输入重复的值! - ansonpan - 博客园 SQL2005分页查询语句! 控制一个登录名只能访问一个数据库! ASP.NET网站安装部署参考总结! 匹配下拉控件 Visual Studio 2008 Web部署项目插件下载 验证视图状态 MAC 失败 喝酒的五个阶段! 打开网页要输入用户名和密码的解决方案!
扩展fckeditor的上传图片和上传文件功能!
ansonpan · 2008-01-14 · via 博客园 - ansonpan

    一直都用开fckeditor,最近客户要求编辑器里要能上传文件。编辑器里上传的图片要能添加水印功能。
于是给fckeditor做了一点小修改。以便支持此功能。
    下面是效果图:

 因此,要建两个页面。一个是文件上传的页面,一个是图片上传的页面。
暂且就叫fck_files.aspx。

 前台布局,别忘了引入fck_files.js咯。
这个JS是自己添加的。
<table width="97%" class="tdFont" >
        
<tr>
            
<td>
                
<fieldset><legend>上传文件</legend>
                
<table width="97%">
                    
<tr>
                        
<td>选择文件:<asp:FileUpload ID="flup" Width="180px" runat="server" /></td>
                        
<td>
                        
<asp:TextBox ID="txtType" style="display:none" runat="server"></asp:TextBox>
                        
<asp:Button ID="btnUpload" runat="server" OnClientClick="javascript:return checkFile();"  Text="上传" OnClick="btnUpload_Click" /></td>
                    
</tr> 
                
</table>
                
</fieldset>
            
</td>
        
</tr>
        
<tr>
            
<td>
               
<fieldset><legend>文件列表</legend>
                
<table width="97%">
                    
<tr>
                        
<td>
                         
<asp:ListBox ID="lstbxFile" onclick="selectFiles();" style="width:100%; height:200px"  runat="server"></asp:ListBox>
                        
</td> 
                    
</tr>
                    
<tr>
                                    
<td> <asp:Button ID="btnDel"  runat="server" OnClientClick="javascript:return delFiles()"   Text="删除文件" OnClick="btnDel_Click" /></td>
                                
</tr>
                
</table>
                
</fieldset>
            
</td>
        
</tr>    
        
     
</table>   
     
<asp:TextBox ID="txtUrl" style="display:none"  runat="server"></asp:TextBox>  
     
<asp:TextBox ID="txtFileName" style="display:none"  runat="server"></asp:TextBox>  

后台程序也很简单。

 //取得所有的文件
private void GetListFiles()
    
{
       
        
string path = "", fname = "";
        path 
= this.MapPath("http://www.cnblogs.com/UploadFiles/");
      
        DirectoryInfo dir 
= new DirectoryInfo(path);
        
if (!dir.Exists) dir.Create();
        FileInfo[] fileList 
= dir.GetFiles();
        lstbxFile.Items.Clear();
        
foreach (FileInfo file in fileList)
        
{
           lstbxFile.Items.Add(
new ListItem(file.Name, fname + file.Name));
        }



    }

//上传文件事件代码。
//我这里是把文件放在UploadFiles文件夹里
 protected void btnUpload_Click(object sender, EventArgs e)
    
{
        
if (flup.HasFile)
        
{
            
string spath =  this.MapPath("http://www.cnblogs.com/UploadFiles/");            
            
string sName = flup.FileName;

            
//目录是否存在
            DirectoryInfo dinfo = new DirectoryInfo(spath);
            
if (!dinfo.Exists) dinfo.Create();

            
//存在相同文件名
            FileInfo fExt = new FileInfo(spath + "\\" + sName);
            
if (fExt.Exists)
            
{
                Random radName 
= new Random();
                sName 
= sName.Substring(0, sName.LastIndexOf('.')) + radName.Next(099999+ "." + sName.Substring(sName.LastIndexOf('.'+ 1);
                Response.Write(
"<script>window.alert('出现相同的文件名,文件名称已改为:\"" + sName + "\"')</script>");
            }
                       
            flup.SaveAs(spath 
+ "\\" + sName);                                
            GetListFiles();             
        }

    }

找到fckeditorcode_ie_2.jsfckcommands.js文件,将期页面路径修改为新添加的aspx文件路径。
dialog文件夹里,新增一个文件夹命名为fck_files,新增一js文件叫fck_files.js


var oEditor        = window.parent.InnerDialogLoaded() ;
var FCK            = oEditor.FCK ;
var FCKLang        = oEditor.FCKLang ;
var FCKConfig    = oEditor.FCKConfig ;
var FCKDebug    = oEditor.FCKDebug ;



var bPreviewInitialized ;

window.onload 
= function()
{
    window.parent.SetOkButton( 
true ) ;
}


function Ok()
{
    
if ( GetE('txtUrl').value.length == 0 )
    
{        
        alert(
"请选择文件!");
        
return false ;
    }


    
var bHasImage = ( oImage != null ) ;

    oImage 
= FCK.EditorDocument.createElement( 'a' ) ;
    oImage.href 
= GetE('txtUrl').value ;
    oImage.target 
= '_blank';
    oImage.innerHTML 
= GetE('txtFileName').value ;
    oImage 
= FCK.InsertElementAndGetIt( oImage ) ;


    
return true ;
}

基本上就差不多了!