开发者

Thinkphp结合ajaxFileUpload实现ajax异步图片传输全套代码

开发者 https://www.devze.com 2023-03-12 10:17 出处:网络 作者: yin
目录1、引用文件2、html代码3、js代码4、后台处理(php)5、前台调用这篇文章主要给大家介绍了利用Thinkphp结合AJAXFileUpload实现异步图片传输的方法,文中给出了详细的示编程客栈例代码,对大家具有一定的参考价值
目录
  • 1、引用文件
  • 2、html代码
  • 3、js代码
  • 4、后台处理(php)
  • 5、前台调用

这篇文章主要给大家介绍了利用Thinkphp结合AJAXFileUpload实现异步图片传输的方法,文中给出了详细的示编程客栈例代码,对大家具有一定的参考价值,需要的朋友们下面来一起看看吧。

使用jquery的ajaxFileUpload的图片上传插件,感觉这种异步上传的方式非常好用接下来就介绍一下这个插件的使用。

通过查看插件的源码发现,插件的实现原理大概就是创建一个隐藏的表单和iframe然后用JS去提交,获得返回值。

1、引用文件

先引入jQuery与ajaxFileUpload插件。注意先后顺序,这个不用说了,所有的插件都是这样。

<script src="__ADMIN__/js/jquery.min.js?v=2.1.4"></script>
<script src="__ADMIN__/js/ajaxfileupload.js"></script>

2、HTML代码

<div class="form-group">
    <label class="col-sm-2 control-label">缩略图</label>
    <div class="col-sm-8">             
        <div id="file-pretty">
            <div>
                <input type="file" id="file_thumb" name="thumb" class="form-control" style="display: none;" value="">
                <div class="input-append input-group">
                    <span class="input-group-btn">
                        <button id="开发者_C教程btn_thumb" class="btn btn-white" type="button">选择图片</button>
                    </span>
                    <input id="info_thumb" name="thumb" class="input-large form-control" type="text" value="{$info.img}">
                </div>
            </div>
        </div>                     
    </div>
    <div class="col-sm-2"><img id="show_thumb" src="/uploads/image/{$info.thumb}" style="height: 30px;" alt="Thinkphp结合ajaxFileUpload实现ajax异步图片传输全套代码"></div>
</div>

3、JS代码

    <script type="text/Javascript">
	    $(function(){
	        $("#btn_thumb").click(function(){
	            $("#file_thumb").click();
	        });

	        //异步上传
	        $("body").delegate('#file_thumb', 'change', function(){
	            var filepath = $("input[name='thumb']").val();
	            var arr = filepath.split('.');
	            var ext = arr[arr.length-1];
	            //alert(filepath);exit();

	            if('gif|jpg|png|bmp'.indexOf(ext)>=0){
	                $.ajaxFiljseUpload({
	                  url: '/admin/slide/upload_image',
	                  secureurl: false,
	                  fileElementId: 'file_thumb', //file标签ID
	                  dataType: 'json', //返回数据类型
	                  data:{na编程me:'thumb'},
	                  success:function (data,status){
	                      $("#info_thumb").val(dat编程a);
	                      $("#show_thumb").attr('src','/uploads/images/'+data);
	                      $("#info_thumb").focus();
	                  },
	                  complete:function (XMLHttpRequest){

	                  },
	                  error:function (data,status,e){
	                      layer.alert('上传失败!');
	                  },
	              });
	            } else {
	                //清空file
	                $("#file_thumb").val("");
	                layer.alert('请上传合适的图片类型!');
	            }

	        });
	    });
    </script>  

4、后台处理(PHP)

    //单文件(包含单文件)异步上传
    public function upload_image(){
        //图片上传
        $file = request()->file(input('name'));
        $info = $file->move(ROOT_PATH . 'public/uploads/images');
        if($info) {
            return json_encode($info->getSaveName());
        }
    }

5、前台调用

<div id="slideshow">
  <ul class="rslides" id="slider">
    {volist name="data" id="vo"}
    <li><a href="{$vo.url}" rel="external nofollow"  rel="bookmark" target="_blank"> <img src="__UPLOADS__/images/alGwfDmZ{$vo.img}" max-width="" max-height="" alt="{$vo.title}"></a>
      <p class="slider-caption">{$vo.title}</p>
    </li>
    {/volist}
  </ul>
</div>

到此这篇关于Thinkphp结合ajaxFileUpload实现ajax异步图片传输全套代码的文章就介绍到这了,更多相关Thinkphp加ajaxFileUpload实现图片上传内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

0

精彩评论

暂无评论...
验证码 换一张
取 消