同步:

前台页面:

        <div class="form-div">
<form action="{:url('index/i/edit_head_img_cl')}" enctype="multipart/form-data" method="post">
<input type="file" name="image" accept="image/gif, image/jpg ,image/png"/> <br>
<p style="color:red">仅支持不大于5m,后缀为jpg,png,gif的图片</p>
<input type="submit" value="上传" />
</form>
</div>

后台页面:

    //处理头像修改
public function edit_head_img_cl(){ //检验用户是否登陆,并获取user_id
if($this->check_log['ok'] == '-1'){
$this->error($this->check_log['error']);
}
$user_id = $this->check_log['id'];
echo '';
// 获取表单上传文件 例如上传了001.jpg
$file = request()->file('image');
echo '';
// 移动到框架应用根目录/public/uploads/ 目录下
if($file){
$info = $file->validate(['size'=>,'ext'=>'jpg,png,gif'])->move('static/uploads/');
if($info){
// 成功上传后 获取上传信息
// 输出 jpg
/* echo $info->getExtension();
// 输出 20160820/42a79759f284b767dfcb2a0197904287.jpg
echo $info->getSaveName();
// 输出 42a79759f284b767dfcb2a0197904287.jpg
echo $info->getFilename(); */
$ing_url = $info->getSaveName();
//把url写进头像
$res = UserDB::update(['id'=>$user_id,'head_img'=>$ing_url]);
if(!$res){
echo '系统故障,更换头像失败';
}else{
echo '<script type="text/javascript">parent.location.reload();</script>';
} }else{
// 上传失败获取错误信息
echo $file->getError();
}
}else{
echo request()->post('image');
}
}

异步:

前台页面:

                            <tr>
<td>头像(异步上传):</td>
<td>
{if $user.head_img == ''}
<img src="__STATIC__/uploads/{$site_setup.default_img}" style="width: 50px;height: 50px;" class="head-img">
{else/}
<img src="__STATIC__/uploads/{$user.head_img}" style="width: 50px;height: 50px;" class="head-img">
{/if}
</td>
<td>
<input type="file" multiple="multiple" id="inputfile" name="" class="photo"> </td>
</tr>
    //图片异步上传
$("#inputfile").change(function(){
console.log($(this).val());
/*alert(1);*/
var file = $('#inputfile')[].files[];
var data = new FormData();
/* console.log($('#inputfile'));*/
data.append('image', file); $.ajax({
url:"{:url('index/i/edit_head_img_cl_yb')}", /*去过那个php文件*/
type:'POST', /*提交方式*/
data:data,
dataType: "json",
cache: false,
contentType: false, /*不可缺*/
processData: false, /*不可缺*/
mimeType: "multipart/form-data",
success:function(data){
if(data.ok == ''){
//把头像换成新的
$(".head-img").attr("src","__STATIC__/uploads/"+data.url);
}
alert(data.message);
},
error:function(data){
alert('上传出错');
}
});
});

后台页面:

    //处理头像修改(异步)
public function edit_head_img_cl_yb(){ //检验用户是否登陆,并获取user_id
if($this->check_log['ok'] == '-1'){
return ['ok'=>'-1','message'=>$this->check_log['error']];
}
$user_id = $this->check_log['id']; // 获取表单上传文件 例如上传了001.jpg
$file = request()->file('image'); // 移动到框架应用根目录/public/uploads/ 目录下
if($file){
$info = $file->validate(['size'=>,'ext'=>'jpg,png,gif'])->move('static/uploads/');
if($info){
// 成功上传后 获取上传信息
// 输出 jpg
/* echo $info->getExtension();
// 输出 20160820/42a79759f284b767dfcb2a0197904287.jpg
echo $info->getSaveName();
// 输出 42a79759f284b767dfcb2a0197904287.jpg
echo $info->getFilename(); */
$ing_url = $info->getSaveName();
//把url写进头像
$res = UserDB::update(['id'=>$user_id,'head_img'=>$ing_url]);
if(!$res){
return ['ok'=>'-1','message'=>'系统故障,更换头像失败']; }else{
return ['ok'=>'','message'=>'上传成功!','url'=>$ing_url];
} }else{
// 上传失败获取错误信息
return ['ok'=>'-1','message'=>$file->getError()];
}
}else{
return ['ok'=>'-1','message'=>'没有接收到图片!'];
}
}

thinkphp的同步上传图片和异步上传图片的更多相关文章

  1. Jquery实现异步上传图片

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

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

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

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

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

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

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

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

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

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

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

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

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

  8. Ajax实现异步上传图片

    要求:点击页面浏览按钮后,选择需要上传的图片,页面无刷新,将上传的图片展示出来 开发流程 一:在页面编写表单代码和js代码 <!DOCTYPE html PUBLIC "-//W3C/ ...

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

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

随机推荐

  1. Linux vim三种模式的快捷键

    1.移动光标 数字 + h,j,k,l 上,下,左,右 ctrl-e 移动页面 ctrl-f 上翻一页 ctrl-b 下翻一页 ctrl-u 上翻半页 ctrl-d 下翻半页 w 跳到下一个字首,按标 ...

  2. CentOS MySQL自动备份shell脚本

    先执行  vim/mysqlBack/back.sh 然后添加以下内容 ## 记录日志 # 以下配置信息请自己修改 mysql_user="root" #MySQL备份用户 mys ...

  3. day:3.9基础复习

    1.不要在模块之间相互调用,否则会出现麻绳现象,避免循环导入. ==:用来判断值是否相等(分别指向两个空间,但是空间里面的内容相同) is:判断指向是否相等. 例: a=[,,] b=[,,] a== ...

  4. jsonp 完成跨域请求注意事项

    jsonp 不支持post方式请求跨域数据 可以使用get方式请求 !jsonp 不支持post方式请求跨域数据 可以使用get方式请求 !jsonp 不支持post方式请求跨域数据 可以使用get方 ...

  5. swagger2使用

    添加依赖 <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swag ...

  6. php私有组件以及创建自己的composer私有组件(packagist+git+composer)

    1.私有组件 大多数时候我们使用的都是公开可用的开源组件,但有时候如果公司使用内部开发的PHP组件,而基于许可证和安全方面的问题不能将其开源,就需要使用私有组件.对Composer而言,这是小菜一碟. ...

  7. Python 类方法、实例方法、静态方法的使用与及实例

    类方法 使用装饰器@classmethod 第一个参数必须是当前类对象,该参数名一般约定为“cls” (可修改但不建议)通过他来传递类的属性和方法(不能传实例的属性和方法) 调用:实例对象和类对象多可 ...

  8. URLSearchParams/FormData

    一.URLSearchParams()(很好用,但有一定兼容问题,未来版本的浏览器中该功能的语法和行为可能随对应的标准文档而改变.) URLSearchParams 接口定义了一些实用的方法来处理 U ...

  9. php header的使用

    // okheader('HTTP/1.1 200 OK'); //设置一个404头:header('HTTP/1.1 404 Not Found'); //设置地址被永久的重定向header('HT ...

  10. 【转】Error,java对常量池来说字符串xxx的UTF8表示过长的解决及其理解

    做项目,客户端这里自己模拟json数据时,一时没忍住搞得json字符串太长了(idea上大概有600多行吧),这个问题就蹦出来了.老方法直接google.百度然后看到一堆有关String 字符串常量池 ...