ueditor文本编辑器原本支持ctrl+v时复制文字和样式,由于ie协议的原因<input type=‘file‘ />必须必须点击,图片无法上传,本例是通过编写active控件解除限制向ftp上传,有更好的希望能告知,谢谢
负责复制粘贴的ueditor文本编辑器js是ueditor1_2_6_1-src\_src\plugins\wordimage.js,改写其中UE.plugins["wordimage"] = function ()方法
//作者:牟云飞 //时间:2014年01月14日 //qq:1147417467 //active自定义粘贴图片 function uploadPasrseImage(src){ alert("上传黏贴过来的图片"); //连接ftp var address = "***.**.**.***"; var port = "21"; var user = "*****"; var pass = "*****"; var mode = "1" var Ret = ToFtp.ConnectFtp(address,port,user,pass,mode); image = src.substring(8,src.length); //传图片第一个参数上传的文件路径,第二个上传服务器后的名字 Ret = ToFtp.WriteFtpFile(image, "04.jpg"); //上传服务器后的路径 image=Ret; } //存放上传服务器后的路径 var image; UE.plugins["wordimage"] = function () { var me = this, images; me.addInputRule(function (root) { utils.each(root.getNodesByTagName(‘img‘), function (img) { var attrs = img.attrs, flag = parseInt(attrs.width) < 128 || parseInt(attrs.height) < 43, opt = me.options, src = opt.UEDITOR_HOME_URL + ‘themes/default/images/spacer.gif‘; //执行插件上传图片 uploadPasrseImage(attrs._src); if (attrs[‘_src‘] && attrs[‘_src‘].indexOf("file:///")!==-1) { img.setAttr({ width:attrs.width, height:attrs.height, alt:attrs.alt, word_img:"", src:image, _src:"", ‘style‘:‘background:url(‘ + ( flag ? opt.themePath + opt.theme + ‘/images/word.gif‘ : opt.langPath + opt.lang + ‘/images/localimage.png‘) + ‘) no-repeat center center;border:1px solid #ddd‘ }) } }) });
c++编写active时用的是如下方式上传ftp,本人现在做java, c++不是很好只能用这种方式了
m_pSesInternet = new CInternetSession;
m_pFtpCnt = m_pSesInternet->GetFtpConnection(Address, User, Pass, _wtoi(Port),bMode);
m_pFtpCnt->PutFile(LocalFile, FtpFile);
完成控件之后,用regsvr32.exe 路径\**.ocx 注册一下控件
用ActiveX Control Pad编译控件
<OBJECT ID="ToFtp" WIDTH=0 HEIGHT=0
CLASSID="CLSID:EC5307A6-6B48-4614-B306-D00134537425">
<PARAM NAME="_Version" VALUE="65536">
<PARAM NAME="_ExtentX" VALUE="0">
<PARAM NAME="_ExtentY" VALUE="0">
<PARAM NAME="_StockProps" VALUE="0">
</OBJECT>放在使用ueditor的页面
所有的源码将做成demo后共享