• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • dedecms
  • ecshop
  • z-blog
  • UcHome
  • UCenter
  • drupal
  • WordPress
  • 帝国cms
  • phpcms
  • 动易cms
  • phpwind
  • discuz
  • 科汛cms
  • 风讯cms
  • 建站教程
  • 运营技巧
您的位置:首页 > CMS教程 >建站教程 > 详解thinkphp ajaxfileupload异步上传图片

详解thinkphp ajaxfileupload异步上传图片

作者:站长图库 字体:[增加 减小] 来源:互联网 时间:2022-04-29

站长图库向大家介绍了thinkphp,ajaxfileupload,异步上传图片等相关知识,希望对您有所帮助

下面给大家介绍thinkphp ajaxfileupload异步上传图片方法,希望对需要的朋友有所帮助!

thinkphp ajaxfileupload 异步上传图片

thinkphp开发图片上传,图片异步上传是目前比较方便的功能,这里我就不写css文件了,将代码写出来。

引入核心文件下载 https://github.com/carlcarl/AjaxFileUpload

HTML

下面首先在html页面引入相关js资源

<!DOCTYPE html><html><head>    <meta charset="UTF-8">    <title>图片上传</title>     <script type="text/javascript" src="js/jquery-1.8.2.min.js"></script>    <script type="text/javascript" src="js/ajaxfileupload.js"></script>   </head><body></body></html>

接下来在body中创建相关p

<label class="title w100">封面图片:</label><p class="f_l">    <label class="fileupload" onclick="upd_file(this,'image_file');">        <input type="file" class="filebox" name="image_file" id="image_file"/>        <!--上传成功后图片会给value赋值图片路径,以便于form表单提交数据-->        <input type="hidden" name="image" value="">                            </label>    <label class="fileuploading hide" ></label>                    </p><p class="blank15"></p><!--上传成功后图片会在这里显示否则是默认图片--><img id="image" src="/Public/images/empty_thumb.gif" />

解释一下:

其中upd_file(this,'image_file')不可缺少

其中隐藏的input 是用于上传成功后赋值图片路径,以便于form表单提交数据

接下来在html中编辑javascript脚本以便于传递和提交图片功能

<script>function upd_file(obj,file_id){    $("input[name='"+file_id+"']").bind("change",function(){                $(obj).hide();    $(obj).parent().find(".fileuploading").removeClass("hide");    $(obj).parent().find(".fileuploading").removeClass("show");    $(obj).parent().find(".fileuploading").addClass("show");        $.ajaxFileUpload(            {                url:'/index.php/home/avatar/app_upload_image',//上传图片处理文件                secureuri:false,                fileElementId:file_id,                dataType: 'json',                success: function (data, status)                {                    $(obj).show();                    $(obj).parent().find(".fileuploading").removeClass("hide");                    $(obj).parent().find(".fileuploading").removeClass("show");                    $(obj).parent().find(".fileuploading").addClass("hide");                    if(data.status==1){                        $("#image").attr("src",data.thumb_url+"?r="+Math.random());                                                       $("input[name='image']").val(data.url);//返回json后将隐藏input赋值                        //$("#img_url").html('<input type="hidden" name="img_url" value="'+ path.path +'" />');                    } else {                        $.showErr(data.msg);                    }                },                error: function (data, status, e)                {                    $.showErr(data.responseText);;                    $(obj).show();                    $(obj).parent().find(".fileuploading").removeClass("hide");                    $(obj).parent().find(".fileuploading").removeClass("show");                    $(obj).parent().find(".fileuploading").addClass("hide");                }            }        );        $("input[name='"+file_id+"']").unbind("change");    });    }<script>

thinkphp 中创建方法 app_upload_image()

function app_upload_image($maxSize=52428800){    $id=session('id');    $config=array(        'rootPath'  =>'Upload',         //文件上传保存的根路径        'savePath'  =>'/avatar/',           'exts'      => array('jpg', 'gif', 'png', 'jpeg','bmp'),        'maxSize'   => $maxSize,        'autoSub'   => true,    );    $upload = new \Think\Upload($config);// 实例化上传类    $z = $upload->uploadOne($_FILES['image_file']);    if($z) {        //拼接图片的路径名        $img='/Upload'.$z['savepath'].$z['savename'];        $_POST['image_file']=$img;        //获取上传图片绝对路径        $imgsrc=$_SERVER['DOCUMENT_ROOT'].__ROOT__.$_POST['image_file'];        $image = new \Think\Image();         $image->open($imgsrc);        //将图片裁剪为400x400并保存为corp.jpg        $image->thumb(205, 160,\Think\Image::IMAGE_THUMB_CENTER)->save($imgsrc);         $this->ajaxReturn(array("thumb_url"=>$img,"url"=>$img,"status"=>1));    }}

OK这样就好了,首先和大家说一下,如果ajaxfileupload.js报错程序是不会跑通的,如果你的程序报错就检查你的ajaxfileupload文件是不是版本的问题。


分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • laravel与thinkphp之间的区别与优缺点
  • ThinkPhp5.1制作微信支付以及支付后的几种状态说明
  • ThinkPHP3.2.3如何从php5升级到php7
  • 详解thinkphp下部分内容的ajax无刷新分页
  • 你知道Thinkphp5.1让验证码在Electron-vue中怎么用?
  • 关于ThinkPHP的join关联查询不使用默认的表前缀
  • ThinkPHP5通过ajax插入图片并实时显示(完整代码)
  • 分析 thinkphp5 显示render不兼容问题
  • ThinkPHP5访问怎么去除/public/index.php
  • Thinkphp5.1详细讲解中间件的用法

相关文章

  • 2022-04-29JS 中 9 个强大主流写法(各种 Hack 写法)
  • 2022-04-29使用HTML5开发App有哪些优缺点
  • 2022-04-29vue3为什么快?vue3的效率提升主要在哪方面?
  • 2022-04-29PHPCMS如何判断该栏目是否含有子栏目?
  • 2022-04-29Photoshop制作华丽的金色霓虹灯字
  • 2022-04-29Photoshop制作绚丽的放射光线效果图
  • 2022-04-29百度频繁变更算法,我们该怎么办?
  • 2022-04-29帝国CMS后台密码忘了怎么办,找回密码的两种方法
  • 2022-04-29五步搞定Laravel Migrations的使用
  • 2022-04-29Illustrator制作超酷的3D符号效果图

文章分类

  • dedecms
  • ecshop
  • z-blog
  • UcHome
  • UCenter
  • drupal
  • WordPress
  • 帝国cms
  • phpcms
  • 动易cms
  • phpwind
  • discuz
  • 科汛cms
  • 风讯cms
  • 建站教程
  • 运营技巧

最近更新的内容

    • php swfupload中文乱码怎么解决
    • CDR打造质感立体文字
    • PHPCMS如何判断该栏目是否含有子栏目?
    • wordpress错误提示”抱歉,由于安全原因,这个文件类型不受支持。”解决方法
    • 织梦DedeCMS在自定义表单里加入验证码的方法
    • 分享TP6框架中Redis操作服务类的记录
    • PHP生成中间带LOGO图像的二维码
    • Flex中对表格中某列的值进行数字格式化保留两位小数
    • 千万不要让搜素引擎误认为买卖链接了
    • JavaScript实现UTF-8编解码

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有