先别嫌我啰嗦,网上教程一大堆。其实那是通过设置FTP,将图片上传到FTP服务器,在此就不讲解了,下方贴上链接
http://jingyan.baidu.com/article/455a9950ee01eaa166277803.html
今天要说的是如果将缩略图上传到图片服务器,比如阿里云的oss,新浪的scs等等,只要是有API的云存储都可实现。
众所周知,织梦的缩略图上传功能已经比较强大,可以判断图片类型和修改图片名称,其中修改图片名称很重要,比如上传的图片是中文名称,如果浏览器直接访问其实并不友好。所以要保留这两项功能。我们只需要将它上传的地址给改变一下即可通过查看源码,原来缩略图的上传地图为/include/dialog/select_images_post.php,如下图红线部分。
查看form表单的action即可。我们现在就修改它的核心代码,这个页面有两个地方引用它,一是文章内上传图片,二是上传缩略图的时候,如果还有其它的地方请在下方留言并指正,成分感谢;
这两处上传按钮引用自上面同一个HTML,在程序部分是根据获取CKEditorFuncNum的POST参数值来确定是文章内容图片或缩略图;
将后台文件/include/dialog/select_images_post.php备份一下或者改个名字都行。再用这段代码覆盖原有的即可,不需要再修改其它任何文件,好不好只有试了才知道。
<?php
require_once(dirname(__FILE__)."/config.php");
require_once(dirname(__FILE__)."/../image.func.php");
require_once (dirname(__FILE__)."/oss/sdk.class.php");//引入oss sdk文件或者是其它新浪和腾迅SDK
if(empty($imgfile))
{
$imgfile='';
}
if(!is_uploaded_file($imgfile))
{
ShowMsg("你没有选择上传的文件!".$imgfile, "-1");
exit();
}
$imgfile_name = trim(preg_replace("#[ \r\n\t\*\%\\\/\?><\|\":]{1,}#", '', $imgfile_name));
if(!preg_match("#\.(".$cfg_imgtype.")#i", $imgfile_name))
{
ShowMsg("你所上传的图片类型不在许可列表,请更改系统对扩展名限定的配置!", "-1");
exit();
}
$nowtme = time();
$sparr = Array("image/pjpeg", "image/jpeg", "image/gif", "image/png", "image/xpng", "image/wbmp");
$imgfile_type = strtolower(trim($imgfile_type));
if(!in_array($imgfile_type, $sparr))
{
ShowMsg("上传的图片格式错误,请使用JPEG、GIF、PNG、WBMP格式的其中一种!","-1");
exit();
}
$filename_name = $cuserLogin->getUserID().'-'.dd2char(MyDate("ymdHis", $nowtme).mt_rand(100,999));
$fs = explode('.', $imgfile_name);
$filename_name = $filename_name.'.'.$fs[count($fs)-1];
/*alioss start这才是重头戏,这里只讲了阿里的,新浪的只需要替换这一段代码即可*/
$client =new ALIOSS(OSS_ACCESS_ID,OSS_ACCESS_KEY,OSS_ENDPOINT);
$fp = fopen($imgfile,'r');
if($fp)
{
$f = fstat($fp);
$size = $f['size']/1024;
$content;
while(!feof($fp)){
$content .= fgets($fp,8192);
}
echo $filename_name;
$option = array('content' => $content, 'length' => $size);
$response = $client->upload_file_by_content(OSS_TEST_BUCKET, OSS_TEST_BUCKET."/".$filename_name, $option);
$u = "http://img.xjjsz.com/". OSS_TEST_BUCKET . "/" . $filename_name ;
$response = json_decode(json_encode($response));
if($response->status == 200){
echo "<div onclick=\"ReturnImg('$u');\" style=\"text-align: center\"><img src=\"$u\" ><br/>点击图片即可;地址为:".$u."</div>";
}else{
echo "上传到阿里服务器失败";
}
fclose($fp);
}
/*alioss end*/
?>
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Upload</title>
</head>
<body>
<SCRIPT language=JavaScript>
function nullLink(){ return; }
function TNav()
{
if(window.navigator.userAgent.indexOf("MSIE")>=1) return 'IE';
else if(window.navigator.userAgent.indexOf("Firefox")>=1) return 'FF';
else return "OT";
}
function ReturnImg(reimg)
{
var funcNum = <?php echo $CKEditorFuncNum ?>;//CKEditorFuncNum如果是1则为上传的缩略图,如果是2则为上传的文章内容图片
if(funcNum > 1)
{
var fileUrl = reimg;
window.opener.CKEDITOR.tools.callFunction(funcNum, fileUrl);
}
if(window.opener.document.form1.picname != null && funcNum <= 1)
{
window.opener.document.form1.picname.value=reimg;
if(window.opener.document.getElementById('picview'))
{
if(TNav()=='IE'){
//window.opener.document.getElementById('picview').filters.item('DXImageTransform.Microsoft.AlphaImageLoader').src = reimg;
window.opener.document.getElementById('picview').src = reimg;
window.opener.document.getElementById('picview').style.width = '150px';
window.opener.document.getElementById('picview').style.height = '100px';
}
else
window.opener.document.getElementById('picview').src = reimg;
}
else if(window.opener.document.getElementById('picview')){
window.opener.document.getElementById('picview').src = reimg;
}
if(document.all) window.opener=true;
}
window.close();
}
</SCRIPT>
</body>
</html>
<?php
exit();
下次再贴上图集的办法。
发表评论
沙发空缺中,还不快抢~