公司一个项目是论坛社区,一般社区发帖就得把手机中的图片导入到电脑里,实在是太麻烦了,前几天听到运营在抱怨说。就决定做个手机传图功能。
大致思路:用户pc进入发帖页面,根据用户ID,时间加一些字段用base64加密生成二维码,然后微信扫面进入一个手机页面上传图片,pc端一个长轮询时时获取图片。
刚开始找了很多插件,有的不支持微信浏览器。
上传图片之后把图片获取到编辑器里搞了很久,最终百度到了这个函数editor.execCommand(),可以把html内容写到编辑器里
下面贴一段获取图片的代码
<script>
//时时获取手机发帖
$(function(){
var setting = {
type:'post',
url:'index.php',
data:{token:'token'},
dataType:'json',
success:function(res){
var editor = UE.getEditor('advanced_editor');
editor.execCommand("insertHTML",'<p><img src="'+res.rsm['img']+'"></p>',true);
<!-- $(".aw-mod-head").append('<p><img src="'+res.rsm['img']+'"></p>'); -->
console.log(res);
window.setTimeout(function(){$.ajax(setting)},1000);
},
error:function(XMLHttpRequest,textStatus,errorThrown){
window.setTimeout(function(){$.ajax(setting)},1000);
}
}
$.ajax(setting);
})
</script>
public function index(){
set_time_limit(0);
$token = $_POST['token'];
if(!$data = $this->model('article')->fetch_row('code_token',"token = '$token'")){
echo "<script>alert('服务出错');</script>";exit;
}
$user_name = array_pop(explode('___',base64_decode($token)));
$uid = $this->model('account')->fetch_one('users','uid',"user_name = '$user_name'");
if($uid){
while(true){
$data = $this->model('article')->fetch_row('mobile_img','state = 0 and uid = ' . $uid, 'add_time ASC');
if($data){
$this->model('article')->update('mobile_img',array('state'=>1),'id = ' . $data['id']);
H::ajax_json_output(AWS_APP::RSM($data, 1, null));
exit;
}
sleep(1);
}
}
}
热门评论
editor.execCommand 是什么