zblog
当前位置:首页 > 商学院 > zblog > 正文内容

zblog

zblogphp原生代码上传图片

豫唐网络2022-11-04 17:041891

不依托第三方插件实现的php原生上传图片的方法,操作步骤如下。

1、在当前主题或者当前插件的目录下,创建新文件script/upload.js,写入代码

!function(o){
varb=$('body');
functionupload(){
varid='ajax_upload'+newDate().getTime(),d=$(this);;
b.append(`<inputtype="file"id="${id}"accept="${o.accept}"style="display:none">`);
varel=$('#'+id);
b.one('change','#'+id,function(){
varf=newFormData();
f.append('file',$(this)[0].files[0]);
$.ajax({
url:ajaxurl+o.src,
type:'POST',
dataType:'json',
data:f,
contentType:false,
processData:false,
xhr:function(){
varxhr=newXMLHttpRequest(),t;
xhr.upload.addEventListener('progress',function(e){
if(e.lengthComputable){
t=Math.floor(e.loaded/e.total*100);
o.progress&&o.progress(d,t);
}
});
returnxhr;
},
success:function(r){
o.success(d,r);
},
error:function(r){
o.error&&o.error(d,r);
}
});
}),
el.click();
}
b.on('click',o.click,upload);
}({
src:'ytecn_ai_xzjt',//这里AppName改为你的应用ID
click:'.ytecn_upimgbutton',
accept:'.jpg,.jpeg,.png,.gif,.bmp,.svg',
success:function(e,r){
console.log('上传成功,图片链接:'+r.url);
e.siblings('.ytecn_input_img').attr("value",r.url);
e.siblings('img').attr('src',r.url);
e.val('选择文件');
},
error:function(e){
alert('上传失败');
},
progress:function(e,n){
e.val('上传进度:'+n+'%');
}
});

2、通过Filter_Plugin_Cmd_Ajax添加ajax异步上传

functionActivePlugin_ytecn_ai_xzjt(){
Add_Filter_Plugin('Filter_Plugin_Cmd_Ajax','ytecn_ai_xzjt_Cmd_Ajax');
}
functionytecn_ai_xzjt_Cmd_Ajax($src)
{
global$zbp;
if($src=='ytecn_ai_xzjt'){
if(!$zbp->CheckRights('UploadPst')){
$zbp->ShowError(6);
}
Add_Filter_Plugin('Filter_Plugin_Upload_SaveFile','ytecn_ai_xzjt_Upload_SaveFile_Ajax');
$_POST['auto_rename']=1;
PostUpload();
echojson_encode(array('url'=>$GLOBALS['tmp_ul']->Url));
exit;
}
}
functionytecn_ai_xzjt_Upload_SaveFile_Ajax($tmp,$ul)
{
$GLOBALS['tmp_ul']=$ul;
}

3、在需要的地方调用,比如在文章编辑页面。

functionActivePlugin_ytecn_ai_xzjt(){
Add_Filter_Plugin('Filter_Plugin_Edit_Response5','ytecn_ai_xzjt_edit_response');
}
functionytecn_ai_xzjt_edit_response(){
global$zbp,$article;
echo'<scripttype="text/javascript"src="'.$zbp->host.'zb_users/plugin/ytecn_ai_xzjt/script/upload.js"></script>';
echo'<styletype="text/css">
.ytecn_input_img{width:40%!important;}
.ytecn_upimgbutton{width:120px;}
.ytecn_upimg{width:100px;vertical-align:middle;}</style>';
echo'<divid="tesetu">缩略图1:
<inputname="meta_pic"id="edtTitle"type="text"class="ytecn_input_img"value="'.$article->Metas->tesetu1.'"/>
<inputtype="button"class="ytecn_upimgbutton"value="选择图片">
<imgclass="ytecn_upimg"src="'.$article->Metas->pic.'">
</div>';
echo'<divid="tesetu">缩略图2:
<inputname="meta_pic2"id="edtTitle"type="text"class="ytecn_input_img"value="'.$article->Metas->tesetu2.'"/>
<inputtype="button"class="ytecn_upimgbutton"value="选择图片">
<imgclass="ytecn_upimg"src="'.$article->Metas->pic2.'">
</div>';
}


扫描二维码推送至手机访问。

版权声明:本文由汤阴县豫唐网络科技有限公司发布,如需转载请注明出处。

本文链接:https://www.ytecn.com/post/396.html

分享给朋友:

相关文章

Call to undefined function mysql_connect()

Call to undefined function mysql_connect()

今天给某个站搬家,zblogphp程序,原站环境是php5.6,这次配的环境是7.1。然后搬家后,提示然后,惯例,先查看数据库账户密码是否正确。经测试,信息无误。然后呢。。发现配置文件好像挺复杂。这个...

php中截取中文字符串

php中截取中文字符串

截取GB2312中文字符串functionmysubstr($str,$start,$len){ $tmpstr=""; $strlen=$start+$len; for($...

zblogphp1.5.2开发者迁移指南

zblogphp1.5.2开发者迁移指南

自此版本开始,加强安全相关功能。登录相关此版本不再使用 password Cookie,用户密码不再直接暴露。增加token Cookie,并且强制置于 httpOnly 模式。因此:1. 不再允许前...

查看当前页面使用的sql语句zblog版

查看当前页面使用的sql语句zblog版

在使用网站的时,有时候会遇见页面打开缓慢情况,在确定服务器和访问量均是正常的情况下,这个时候一般都是程序中存在慢sql导致。在zblog中如何打开sql语句查看呢?这个时候我们需要用到debug工具。...

zblog文章页调用同分类文章

zblog文章页调用同分类文章

zblog文章页调用同分类文章需要用到getlist函数,居然代码如下{php} $cid=$article->Category->RootID?$article->Categor...

zblogphp插件制作常用功能

zblogphp插件制作常用功能

制作zblogphp插件常用知识点汇总。文档如有描述不清楚、错误或者过时的地方,欢迎留言指出。顾问服务当然,我们也支持付费远程指导。https://www.ytecn.com/post/319.htm...