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 ...
随机推荐
- Redis过滤器如何与Envoy代理一起使用
1.克隆源码到机器 [root@cx-- ~]# git clone https://github.com/envoyproxy/envoy Cloning into 'envoy'... remot ...
- c++与js脚本交互,C++调用JS函数JS调用C++函数
一.javascript调用c++,方法有两种 方案1: 1.html编写 <html><head></head><body><h1>TES ...
- SQLite wrapper
SQLiteWrapper is a C++ wrapper for SQLite. There are some test programs that demonstrate how the SQL ...
- 巧用android:divider属性设置LinearLayout中元素之间的间隔
如上图,要想实现3个button线性排列并且使它们的大小相同.间隔相等.而且整体填充满整个linearlayout,我们一般的做法是在每两个button之间放一个固定宽度的view,然后设置butto ...
- sprintf、fprintf和printf这三个函数有什么区别?
都是把格式好的字符串输出,只是输出的目标不一样:1 printf,是把格式字符串输出到标准输出(一般是屏幕,可以重定向).2 sprintf,是把格式字符串输出到指定字符串中,所以参数比printf多 ...
- POJ-1976-A Mini Locomotive-dp
A train has a locomotive that pulls the train with its many passenger coaches. If the locomotive bre ...
- 操作系统-Windows操作系统的线程调度了解这些
Windows操作系统支持内核级线程,调度单位是线程,它采用基于动态优先级的,抢占式调度,并结合时间配额的调整来完成调度 一.几个前提知识点 就绪线程按优先级进入相应的就绪队列 系统总是选择优先级最高 ...
- 自己写一个依赖注入容器Container
前言:在平时的写代码中为了解耦.方便扩展,经常使用一些DI容器(如:Autofac.Unity),那是特别的好用. 关于它的底层实现代码 大概是这样. 一.使用依赖注入的好处 关于使用依赖注入创建对象 ...
- js 调用接口并传参
注:需先引入 jquery.json-xx.min.js 1. 参数跟在url后面 var name = '王一'; var age = 18; $.ajax({ type : 'get', url ...
- Amazon AWS