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 ...
随机推荐
- Jmeter插件:jp@gc - Dummy Sampler
Dummy Sampler可以比较方便地模拟测试场景,自定义Request Data和Response Data 1. 安装插件:打开页面插件管理网站,下载plugins-manager.jar. 在 ...
- 云HBase备份恢复,为云HBase数据安全保驾护航
摘要: 介绍了阿里云HBase自研备份恢复功能的基本背景以及基本原理架构和基本使用方法. 云HBase发布备份恢复功能,为用户数据保驾护航.对大多数公司来说数据的安全性以及可靠性是非常重要的,如何 ...
- ThinkPHP角色控制时的错误
1.Table 'think.think_user' doesn't exist 等的原因是因为'DB_PREFIX' => 'think_', // 数据库表前缀没有配置好,在使用角色控制时 ...
- iOS ARC下命名规则
当我在ARC模式下写以下代码的时候,编译器报错 Semantic Issue: Property's synthesized getter follows Cocoa naming conventio ...
- (转)Android中RelativeLayout各个属性的含义
转:http://blog.csdn.net/softkexin/article/details/5933589 android:layout_above="@id/xxx" - ...
- Keras+Yolo 目标检测
参考:https://www.cnblogs.com/tensorflownews/p/8922359.html Github:https://github.com/qqwweee/keras-yol ...
- 关于Ubuntu锁屏后,无法输入密码
屏幕锁定后字母密码无法输入,数字可以,切换用户然后可以正常输入密码登陆. 是输入法的事,锁屏界面依然是中文输入法,然后输入字母之后先不会显示然后加上数字后是汉字密码不对. 切换输入法到英文,就可以正常 ...
- Spring Cloud Config的配置中心使用非对称性加密
首先,我们需要通过keytool工具来生成密钥对. keytool是JDK中的一个密钥和证书管理工具.它使用户能够管理自己的公钥/私钥对及相关证书,用于(通过数字签名)自我认证(用户向别的用户/服务认 ...
- PAT甲级——A1110 Complete Binary Tree【25】
Given a tree, you are supposed to tell if it is a complete binary tree. Input Specification: Each in ...
- Mysql优化系列之查询性能优化前篇1
前言 这是优化系列的最后一篇的第1小篇,我们其实可以直接从sql怎么写讲起,why not?但是我还是决定花2个篇幅 问一些问题,带着几个问题循序渐进的往下走. 一个sql语句是怎么被执行的? sql ...