PHPCMS 会员中心上传图片马上显示图片效果
一个即时显示上传图片的标题都不知道怎么写了!真是表达能力越来越差了!今天一个客户说要这种用户上传过图片在上面可以马上显示出来刚才上传的图片,让自己清楚自己上传的图片,这个功能一般来说确实不难,但是要在现有的PHPCMS中实现出来还真有点麻烦,不过最终研究了下还是用最小的改动实现了此方法!最终形式:
下面说下实现步骤:
1:定位到:phpcms/templates/default/member/content_publish.html 此文件是会员中心发布在线投稿的模板,其它类似。
25行左右 增加JS
1 2 3 4 5 6 |
function showimg() { var img = document.getElementById("fileupload").value; if(img!=''){ document.getElementById("imgsrc").src =img; } } |
找到{loop $forminfos $k $v} 前面增加
1 2 3 |
<tr><th width="100">预览:</th> <td><img src="/p1/statics/images/nopic.gif" id="imgsrc" /></td> </tr> |
2:修改statics/js/swfupload/swf2ckeditor.js 文件 第四行 增加 showimg(); 用于调用页面中的 showimg方法
最终结果:
1 2 3 4 5 |
function flashupload(uploadid, name, textareaid, funcName, args, module, catid, authkey) { var args = args ? '&args='+args : ''; var setting = '&module='+module+'&catid='+catid+'&authkey='+authkey; window.top.art.dialog({title:name,id:uploadid,iframe:'index.php?m=attachment&c=attachments&a=swfupload'+args+setting,width:'500',height:'420'}, function(){ if(funcName) {funcName.apply(this,[uploadid,textareaid]);showimg();}else {submit_ckeditor(uploadid,textareaid);}}, function(){window.top.art.dialog({id:uploadid}).close()}); } |
这里还有一个弊端,就是statics/js/swfupload/swf2ckeditor.js文件可能是其它文件也用到这个,那么我们可以做 一个判断来监控是否存在ID或者其它形式的判断是否执行这个JS函数。
如果您有更好的解决办法请留言告知,共同探讨!谢谢!