kindeditor 自动上传远程图片到本地
首先第一步我们要在kindeditor.js 中找到
K(doc).keyup(function(e) {
if (e.which != 13 || e.shiftKey || e.ctrlKey || e.altKey) {
df();
return;
}
if (newlineTag == 'br') {
return;
}
if (_GECKO) {
var root = self.cmd.commonAncestor('p');
var a = self.cmd.commonAncestor('a');
if (a && a.text() == '') {
a.remove(true);
self.cmd.range.selectNodeContents(root[0]).collapse(true);
self.cmd.select();
}
return;
}
在这当中我加入了df();一个函数。
第二步
我们加入了一个js文件,
function df() {
var haspicContainer = document.getElementById("has_pic");
if (haspicContainer == null) {
haspicContainer = document.createElement("div");
haspicContainer.id = "has_pic";
haspicContainer[removed] = "<input type='text' id='piclist' value='' st
$(".ke-toolbar").after(haspicContainer);
// uploadpic();
}
var img = $(".ke-edit-iframe").contents().find("img");
var piccount = 0;
var sstr = "";
$(img).each(function (i) {
var that = $(this);
if (that.attr("src").indexOf("http://") >= 0 || that.attr("src").indexOf("https://") >= 0) {
piccount++;
if (i == $(img).length - 1)
sstr += that.attr("src");
else
sstr += that.attr("src") + "|";
}
});
$("#piclist").val(sstr);
document.getElementById("has_pic").style.display = (piccount > 0) ? "block" : "none";
uploadpic();
}
function closeupload() {
$("#has_pic").hide();
$("#upload").show();
}
function uploadpic() {
var piclist = encodeURI($("#piclist").val());
if (piclist.length == 0) return false;
$.ajax({
url: "/Public/editor/php/file_remote_upload.php",
data: "pic=" + piclist,
type: "GET",
beforeSend: function () {
$("#upload").hide();
// $("#confirm").text("正在上传中...");
},
success: function (msg) {
// alert(msg)
if (msg !== "") {
var str = new Array();
str = msg.split('|');
// alert(str);
var img = $(".ke-edit-iframe").contents().find("img");
var k = 0;
$(img).each(function (i) {
// alert(i)
var that = $(this);
if (that.attr("src").indexOf("http://") >= 0 || that.attr("src").indexOf("https://") >= 0) {
that.attr("src", "/uploads/image/" + str[k]);
that.attr("data-ke-src", "/uploads/image/" + str[k]);
}else{
k--;
}
k++
});
// $("#confirm").html(img.length + "张图片已经上传成功! 关闭");
}
}
});
}
第三方我们加入php上传文件
<?php
/**
* KindEditor PHP
*
* 本PHP程序是演示程序,建议不要直接在实际项目中使用。
* 如果您确定直接使用本程序,使用之前请仔细确认相关安全设置。
*
*/
$pic = $_REQUEST['pic'];
$arr = explode('|', $pic);
$sstr="";
foreach($arr as $imgUrl){
if(strpos($imgUrl, 'http://') !==false || strpos($imgUrl, 'https://') !==false){
//打开输出缓冲区并获取远程图片
// ob_start();
// $context = stream_context_create(
// array (
// 'http' => array (
// 'follow_location' => false // don't follow redirects
// )
// )
// );
// //请确保php.ini中的fopen wrappers已经激活
// readfile( $imgUrl,false,$context);
// $img = ob_get_contents();
// ob_end_clean();
$file=date("Ymdhis").uniqid() . strrchr( $imgUrl , '.' );
$savePath = "../../../uploads/image/".$file;
getImg($imgUrl,$savePath);
$sstr .= $file."|";
}
}
$sstr = rtrim($sstr,'|');
/*
*@通过curl方式获取制定的图片到本地
*@ 完整的图片地址
*@ 要存储的文件名
*/
function getImg($url = "", $filename = "") {
if(is_dir(basename($filename))) {
echo "The Dir was not exits";
Return false;
}
//去除URL连接上面可能的引号
$url = preg_replace( '/(?:^[\'"]+|[\'"\/]+$)/', '', $url );
$hander = curl_init();
$fp = fopen($filename,'wb');
curl_setopt($hander,CURLOPT_URL,$url);
curl_setopt($hander,CURLOPT_FILE,$fp);
curl_setopt($hander,CURLOPT_HEADER,0);
curl_setopt($hander,CURLOPT_FOLLOWLOCATION,1);
//curl_setopt($hander,CURLOPT_RETURNTRANSFER,false);//以数据流的方式返回数据,当为false是直接显示出来
curl_setopt($hander,CURLOPT_TIMEOUT,60);
/*$options = array(
CURLOPT_URL=> 'http://jb51.net/content/uploadfile/201106/thum-f3ccdd27d2000e3f9255a7e3e2c4880020110622095243.jpg',
CURLOPT_FILE => $fp,
CURLOPT_HEADER => 0,
CURLOPT_FOLLOWLOCATION => 1,
CURLOPT_TIMEOUT => 60
);
curl_setopt_array($hander, $options);
*/
curl_exec($hander);
curl_close($hander);
fclose($fp);
Return true;
}
exit($sstr);
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:service@webmeng.net 进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。
以上信息是否解决您的问题?
相关问题
- 邮件系统架设步骤
- 第三方美化界面资源
- 解决宝塔远程mysql问题
- Navicat连接错误1130:is not allowed to...
- 解决1130 is not allowed to connect ...
- 宝塔面板安装nginx,宝塔nginx配置文件
- MySQL PHPmyadmin 数据库导出报错Fatal err...
- Winwebmail能发邮件不能收邮件的解决方法
- 中国境内ICP备案材料清单
- winwebmail邮件系统 v3.9.0.7中文破解版
- C盘空间不足怎么办?5种方法获得更多空间!
- 安全实用的应用迁移方法推荐!
- linux开启端口命令
- linux开启端口
- Linux怎么查看操作系统版本号
- linux centos中升级更新命令yum upgrade和yu...
- Linux下平滑升级nginx
- 50个最常用的Unix/Linux命令
- [分享]云服务器挂马清理实例
- 新手入门——部署一个网站需要准备什么
- 虚拟主机相关基础知识
- 从域名到网站,只需四步!
- 全国各省备案基本要求一览表
- 互联网网站如何备案?
- 域名的实名审核需要多久?
- 怎么在服务器绑定域名
- 快速添加域名解析
- 无法登录云服务器?
- Mysql安装出现的问题Building CXX object s...
- Linux面板7.9.0安装脚本
- linux旧版本如何升级成新版本
- 宝塔Linux面板最新自动磁盘挂载脚本,一键挂载数据盘到www目录...
- 如何在Linux中清除缓存(Cache)
- Linux用指令来释放缓存方法
- Linux清除系统缓存释放内存命令介绍
- 企业邮局域名解析设置
- 如何连接到远程windows服务器
- Webmeng 2022 V13.0.1 下载地址
- wap手机网页html通过特殊链接:打电话,发短信,发邮件详细教程
- Webmeng分类导航标签,模板
餐厅介绍
自助餐厅
用户评论