同步:

前台页面:

        <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. PHP 冷知识

    1,执行Linux命令 <?php $a =`ls -a /`; // execute linux command echo '<pre>'.$a; 2.为变量起别名 <?ph ...

  2. Spark Streaming数据限流简述

      Spark Streaming对实时数据流进行分析处理,源源不断的从数据源接收数据切割成一个个时间间隔进行处理:   流处理与批处理有明显区别,批处理中的数据有明显的边界.数据规模已知:而流处理数 ...

  3. HTML-入门

    HTML——超文本标记语言(Hyper Text Markup Language)html——W3C制定的标准超文本——除了文本,还有图片.视频.音频等丰富的元素标记(标签)——用来展示内容表型:标签 ...

  4. C 基础 _Generic 泛型应用

    引言 - _Generic 用法简介 #include <stdio.h> #define TYPENAME_CASE(type) \ type: #type, #define TYPEN ...

  5. Windows修改账户名称和任务管理器中服务对应的用户名称

    新安装的Windows10,在激活的时候如果选择使用微软账户登录,比如我的微软账户名是QQ邮箱,系统激活后,系统盘用户目录(users)下面的用户目录文件夹名称为QQ邮箱的前几位数字,这样其实也在使用 ...

  6. Longest Ordered Subsequence POJ - 2533 dp 最长上升/不下降 子序列

    #include<iostream> using namespace std ; ; int f[N]; int a[N]; int n; int main() { cin>> ...

  7. Java连载84-Collection的常用方法、迭代器

    一.Collections的常用方法介绍 1.承接上次连载,先介绍几个简单的常用方法 package com.bjpowernode.java_learning; import java.util.* ...

  8. centos开发环境搭建

    1.检查是否安装php php -v yum install php 2.安装composer curl -sS https://getcomposer.org/installer |php //下载 ...

  9. 部署prerender服务器

    // 安装 git sudo apt-get install git sudo apt-get install curl // 请先确认服务器是否安装了curl 如果已经安装跳过即可 // 安装 no ...

  10. hrtf 旋转音效matlab实现

    原理参考: http://www.mahong.me/archives/97 将音频分段,各个段分别使用hrtf在Ls, L, R, Ls, Rrs, Lrs位置处的filter系数.是声音听起来来自 ...