jaxFileUpload插件异步上传图片
第一步:引入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插件异步上传图片的更多相关文章
- thinkphp 使用插件异步上传图片或者文件
使用tp做一些上传的功能,的确挺方便.但是在一些特殊情况下无法单独的使用tp的上传功能, 或者需要做一些比较酷炫的上传效果,这里就需要用到框架了. 我在这里使用的是uploadify上传插件. 首先需 ...
- 异步上传图片,光用jquery不行,得用jquery.form.js插件
异步上传图片,光用jquery不行,得用jquery.form.js插件,百度一下下载这个插件,加jquery,引入就可以了 <form id="postbackground" ...
- C# 异步上传图片案例
好久没写博客了,都感觉自己快堕落了!今天随性写一篇关于异步上传图片的程序及插件! 说是程序及插件,其实程序占大头,所谓的插件只是两个JS.分别为:jquery.html5upload.js 和 jqu ...
- 使用Ajax异步上传图片的方法(html,javascript,php)
前两天项目中需要用到异步上传图片和显示上传进度的功能,于是找了很多外国的文章,翻山越岭地去遇上各种坑,这里写篇文章记录一下. HTML <form id="fileupload-for ...
- MVC异步上传图片到本地/服务器
这两天朋友问我,有没有异步上传图片到本地/服务器这种demo,他有用, 我就想,好吧, 那刚好周末了,整理一套出来. 主要用到的是jquery uploadify 这个juqery的插件 ,可以无刷新 ...
- Jquery实现异步上传图片
利用jQuery的ajax函数就可以实现异步上传图片了.一开始我是想在处理程序中,直接用context.Request.Files来获取页面中的input file,但是不知道为什么一次获取不了.网上 ...
- [Ajax] 使用Ajax异步上传图片文件(非Form表单提交)
通过表单Form提交来上传文件的方式这里就不说了: 下面介绍,通过js中使用ajax异步上传图片文件: 新建一个html页面和一个一般处理程序即可: 涉及思路: //发送2次Ajax请求完成js异步上 ...
- 利用KindEditor的uploadbutton实现异步上传图片
利用KindEditor的uploadbutton实现异步上传图片 异步上传图片最经常使用的方法就是图片在iframe中上传.这样仅仅须要刷新iframe.而不用刷新整个页面. KindEdi ...
- php结合jquery异步上传图片(ajaxSubmit)
php结合jquery异步上传图片(ajaxSubmit),以下为提交页面代码: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transi ...
随机推荐
- BZOJ 1040 (ZJOI 2008) 骑士
题目描述 Z国的骑士团是一个很有势力的组织,帮会中汇聚了来自各地的精英.他们劫富济贫,惩恶扬善,受到社会各界的赞扬. 最近发生了一件可怕的事情,邪恶的Y国发动了一场针对Z国的侵略战争.战火绵延五百里, ...
- (转)C# 使用UDP组播实现局域网桌面共享
转:http://www.cnblogs.com/mobwiz/p/3715743.html 最近需要在产品中加入桌面共享的功能,暂时不用实现远程控制:参考了园子里的一些文章,加入了一些自己的修改. ...
- 如何HOOK桌面窗口消息
代码详见:http://download.csdn.net/detail/swanabin/6771465 需求:截获桌面窗口鼠标单击事件,解析所选中的桌面 Item,并将解析后的 item 信息发送 ...
- VS2010-MFC(菜单:菜单及CMenu类的使用)
转自:http://www.jizhuomi.com/software/212.html 上一节讲的是VS2010的菜单资源,本节主要讲菜单及CMenu类的使用. CMenu类的主要成员函数 MFC为 ...
- jeecms jeecmsv93建库
create tablespace jeecms93 datafile 'jeecms93.dbf' size 100M reuse autoextend on next 50M;1. 2.drop ...
- Activity详解一 配置、启动和关闭activity转载 https://www.cnblogs.com/androidWuYou/p/5887726.html
先看效果图: Android为我们提供了四种应组件,分别为Activity.Service.Broadcast receivers和Content providers,这些组建也就是我们开发一个And ...
- Post Office IOI 2000 /// 区间DP oj24077
题目大意: 给定n个村庄的坐标,两个村庄之间的距离是其坐标之差的绝对值 最多能选m个村庄设立邮局,求设立邮局的地点使得各村庄与邮局距离总和最小 一, 所有的村庄看做在一条直线上 考虑三个因素:i 当前 ...
- 《Practices of an Agile Developer:Woring in the Real World》读书笔记 PB16110698(~3.22)第三周
<Practices of an Agile Developer:Woring in the Real World>读书笔记 本周我阅读了<高效程序员的45个习惯:敏捷开发修炼之道 ...
- Android开发 SpannableString开发详解
前言 SpannableString,是google提供用来处理富文本的功能类.支持很多文本内容的效果变化.另外,它也是Android实现富文本编辑器的关键. 关键API详解 String conte ...
- js怎样截取字符串后几位以及截取字符串前几位
想要截取字符串前几位与后几位,主要代码如下 截取字符串前几位 var disName ='开心一族漂亮家园'; var shortName = disName.substring(0,5); cons ...