分享!!竟然破解了CuteEditor的Ajax Uploader! 求达人来分析一下上传控件的的用法.
这几天在测试CuteEditor的时候,
发现里面有一些新类,例如什么UploadModule,UploadBase,Uploader,UploadAttacments之类的.
上去官网,没发现有什么帖子写这个的.只有那个类似MSDN的在线文档有一些很简单的描述.
后来偶尔发现 , CuteEditor竟然没有限制这个控件的使用!
也就是说,我把临时的CuteEditor.lic删除掉,CuteEditor不可用了.
但是这个Uploader仍然可以用!!
不过我觉得奇怪的是,ASP.NET本身是自带Uploader的,CuteEditor为什么加了这个呢?
我的好奇心很重.不研究一下不心死.
我也不笨.我没花时间去研究,而是跑去它的网站上去问人.
才知道原来这个竟然支持AJAX !!!!!!!
5555..终于解决了在UpdatePanel中上传文件的问题了.
于是立刻把CuteEditor.dll复制到另外一个工程, 换掉原来的上传组件测试.
发现了问题, 就是那个浏览文件的按钮不好用了.奇怪,在原来的工程里还好好的.
我想应该是因为没有复制CuteSoft_Client的原因吧.(因为我只把dll复制过来了)
我让公司的一个JS高手分析原因.
后来找到了. 问题竟然处在一个 1x1.gif 上面 -_- . 好奇怪.
公司的同事说,这个控件用img的onload事件来加载脚本.
因为CuteSoft_Client/CuteEditor/Images/1x1.gif没有复制过去,所以客户端脚本没运行.
OK. 所有问题都解决了.
现在总结一下如何破解这个控件.
1. 首先就是快去cutesoft.net去下载CuteEditor6, 因为不知道什么时候CuteEditor会限制这个Uploader的使用.
2. 下载后,只提取CuteEditor.dll就足够了!! 其他文件一概不用复制. 爽!!
3. 把CuteEditor.dll复制到你的工程中. 在web.config的httpModules里加入:
<configuration>
<system.web>
<httpModules>
<add name= "UploadModule " type= "CuteEditor.UploadModule,CuteEditor " />
</httpModules>
</system.web>
</configuration>
4. 在Web工程里,建立 CuteSoft_Client/CuteEditor/Images/1x1.gif 文件.
5. 新建一个WebForm1.aspx来测试
<%@ Page language= "c# " %>
<%@ Register TagPrefix= "CuteEditor " Namespace= "CuteEditor " Assembly= "CuteEditor " %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN " >
<html>
<head>
<title> WebForm1 </title>
</head>
<body>
<form id= "Form1 " method= "post " runat= "server ">
<CuteEditor:Uploader ID= "FileUploader1 " OnFileUploaded= "FileUploader1_FileUploaded " runat= "server ">
</CuteEditor:Uploader>
<asp:Label Runat= "server " ID= "Label1 "> </asp:Label>
</form>
</body>
</html>
<script runat= "server ">
void FileUploader1_FileUploaded(object sender,CuteEditor.UploaderEventArgs args)
{
Label1.Text= "你上传了: "+args.FileName+ ",存放在: "+args.GetTempFilePath();
}
</script>
OK,有兴趣的把这个代码搬进UpdatePanel里测试吧. 我这里是测试通过了,哈哈!!
不过小弟的能力有限.
根本不明白UploadSingleFile,UploadAttacments怎么用.
希望有达人能帮忙研究一下!谢谢!
------解决方案--------------------接分
------解决方案--------------------jf
------解决方案--------------------天啊. 刚刚继续研究一下, 发现这个控件不止支持AJAX, 而且才回发的时候, 也是AJAX回发啊.
整个过程页面都没有POST一下. 这到底是怎么实现的啊!!