第一步:引入jquery文件和jaxFileUpload文件

文件位置:https://pan.baidu.com/s/1jHEyIyy

第二步,前端:

    <div class="form-group">
<label class="col-xs-12 col-sm-3 col-md-2 control-label"><span class="text-danger"></span> 用户头像</label>
<div class="col-sm-9 col-xs-12">
<input type="file" name="avatar" id="avatar" value=""/>
<input type="hidden" name="avatar_name" id="avatar_name" value=""/> </div>
</div> <div class="form-group" id="img_form_group" style="<?php if(!$member_common['avatar']){echo 'display:none';}?>">
<label class="col-xs-12 col-sm-3 col-md-2 control-label"><span class="text-danger"></span> </label>
<div class="col-sm-9 col-xs-12">
<img width="100px;" <?php echo $member_common['avatar']?'src="/data/upload/member_avatar/'.$member_common['avatar'].'"':'';?> />
</div>
</div>
    function ajaxFileUpload() {
$.ajaxFileUpload
(
{
url:'/index.php/admin/member/memberAjax?do=upload_avatar',
secureuri:false,
fileElementId:'avatar',
dataType: 'json',
success: function (data, status)
{ if(data.code !=1){
layer.msg(data.msg);
}else{
$('input[name="avatar_name"]').val(data.data.avatar_name);
$("#img_form_group").find('img').attr('src',data.data.avatar_url);
$("#img_form_group").show();
} $('input[name="avatar"]').bind('change',uploadChange);
},
error: function (data, status, e)
{
layer.msg('上传失败');
$('input[name="avatar"]').bind('change',uploadChange);
}
}
)
}
function uploadChange(){
var filepatd=$("#avatar").val();
var extStart=filepatd.lastIndexOf(".");
var ext=filepatd.substring(extStart,filepatd.length).toUpperCase();
if(ext!=".PNG"&&ext!=".GIF"&&ext!=".JPG"&&ext!=".JPEG"){
layer.msg("文件格式错误");
$("#avatar").attr('value','');
return false;
}
if ($("#avatar").val() == '') return false;
ajaxFileUpload();
} $(function(){ $('#avatar').change(function(){uploadChange()});
})

第三步,ci框架后端:

  case 'upload_avatar':
if (is_uploaded_file($_FILES['avatar']['tmp_name'])) {
try{
$img_arr = imgUpload(
array(
'path' => FCPATH . 'data/upload/member_avatar',
'field' => 'avatar',
'pre' => 'avatar_',
)
);
$file_name=$img_arr[0]['file_name'];
$file_name = (string) $file_name;
if(!is_file(FCPATH.DATA_UPLOAD.'member_avatar/'.$file_name)){
throw new Exception("上传失败");
} $data=array();
$data['avatar_name']=$file_name;
$data['avatar_url']=getMemberAvatar($file_name);
$this->output(1,'上传成功', $data);
}catch(Exception $e){
$error_msg=$e->getMessage();
$error_msg=str_replace('<p>','',$error_msg);
$error_msg=str_replace('</p>','',$error_msg);
$this->output(400,$error_msg);
}
}else{
$this->output(400,"请选择上传的图片");
}
break;

第四步:

错误处理:http://blog.csdn.net/imlinjunjie/article/details/49403199

jaxFileUpload插件异步上传图片的更多相关文章

  1. thinkphp 使用插件异步上传图片或者文件

    使用tp做一些上传的功能,的确挺方便.但是在一些特殊情况下无法单独的使用tp的上传功能, 或者需要做一些比较酷炫的上传效果,这里就需要用到框架了. 我在这里使用的是uploadify上传插件. 首先需 ...

  2. 异步上传图片,光用jquery不行,得用jquery.form.js插件

    异步上传图片,光用jquery不行,得用jquery.form.js插件,百度一下下载这个插件,加jquery,引入就可以了 <form id="postbackground" ...

  3. C# 异步上传图片案例

    好久没写博客了,都感觉自己快堕落了!今天随性写一篇关于异步上传图片的程序及插件! 说是程序及插件,其实程序占大头,所谓的插件只是两个JS.分别为:jquery.html5upload.js 和 jqu ...

  4. 使用Ajax异步上传图片的方法(html,javascript,php)

    前两天项目中需要用到异步上传图片和显示上传进度的功能,于是找了很多外国的文章,翻山越岭地去遇上各种坑,这里写篇文章记录一下. HTML <form id="fileupload-for ...

  5. MVC异步上传图片到本地/服务器

    这两天朋友问我,有没有异步上传图片到本地/服务器这种demo,他有用, 我就想,好吧, 那刚好周末了,整理一套出来. 主要用到的是jquery uploadify 这个juqery的插件 ,可以无刷新 ...

  6. Jquery实现异步上传图片

    利用jQuery的ajax函数就可以实现异步上传图片了.一开始我是想在处理程序中,直接用context.Request.Files来获取页面中的input file,但是不知道为什么一次获取不了.网上 ...

  7. [Ajax] 使用Ajax异步上传图片文件(非Form表单提交)

    通过表单Form提交来上传文件的方式这里就不说了: 下面介绍,通过js中使用ajax异步上传图片文件: 新建一个html页面和一个一般处理程序即可: 涉及思路: //发送2次Ajax请求完成js异步上 ...

  8. 利用KindEditor的uploadbutton实现异步上传图片

    利用KindEditor的uploadbutton实现异步上传图片 异步上传图片最经常使用的方法就是图片在iframe中上传.这样仅仅须要刷新iframe.而不用刷新整个页面.     KindEdi ...

  9. php结合jquery异步上传图片(ajaxSubmit)

    php结合jquery异步上传图片(ajaxSubmit),以下为提交页面代码: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transi ...

随机推荐

  1. BZOJ 1040 (ZJOI 2008) 骑士

    题目描述 Z国的骑士团是一个很有势力的组织,帮会中汇聚了来自各地的精英.他们劫富济贫,惩恶扬善,受到社会各界的赞扬. 最近发生了一件可怕的事情,邪恶的Y国发动了一场针对Z国的侵略战争.战火绵延五百里, ...

  2. (转)C# 使用UDP组播实现局域网桌面共享

    转:http://www.cnblogs.com/mobwiz/p/3715743.html 最近需要在产品中加入桌面共享的功能,暂时不用实现远程控制:参考了园子里的一些文章,加入了一些自己的修改. ...

  3. 如何HOOK桌面窗口消息

    代码详见:http://download.csdn.net/detail/swanabin/6771465 需求:截获桌面窗口鼠标单击事件,解析所选中的桌面 Item,并将解析后的 item 信息发送 ...

  4. VS2010-MFC(菜单:菜单及CMenu类的使用)

    转自:http://www.jizhuomi.com/software/212.html 上一节讲的是VS2010的菜单资源,本节主要讲菜单及CMenu类的使用. CMenu类的主要成员函数 MFC为 ...

  5. jeecms jeecmsv93建库

    create tablespace jeecms93 datafile 'jeecms93.dbf' size 100M reuse autoextend on next 50M;1. 2.drop ...

  6. Activity详解一 配置、启动和关闭activity转载 https://www.cnblogs.com/androidWuYou/p/5887726.html

    先看效果图: Android为我们提供了四种应组件,分别为Activity.Service.Broadcast receivers和Content providers,这些组建也就是我们开发一个And ...

  7. Post Office IOI 2000 /// 区间DP oj24077

    题目大意: 给定n个村庄的坐标,两个村庄之间的距离是其坐标之差的绝对值 最多能选m个村庄设立邮局,求设立邮局的地点使得各村庄与邮局距离总和最小 一, 所有的村庄看做在一条直线上 考虑三个因素:i 当前 ...

  8. 《Practices of an Agile Developer:Woring in the Real World》读书笔记 PB16110698(~3.22)第三周

    <Practices of an Agile Developer:Woring in the Real World>读书笔记  本周我阅读了<高效程序员的45个习惯:敏捷开发修炼之道 ...

  9. Android开发 SpannableString开发详解

    前言 SpannableString,是google提供用来处理富文本的功能类.支持很多文本内容的效果变化.另外,它也是Android实现富文本编辑器的关键. 关键API详解 String conte ...

  10. js怎样截取字符串后几位以及截取字符串前几位

    想要截取字符串前几位与后几位,主要代码如下 截取字符串前几位 var disName ='开心一族漂亮家园'; var shortName = disName.substring(0,5); cons ...