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后共享
原文:http://blog.csdn.net/myfmyfmyfmyf/article/details/18399329