Thinkphp结合ajaxFileUpload实现ajax异步图片传输全套代码
发布:smiling 来源: PHP粉丝网 添加日期:2023-06-27 13:27:45 浏览: 评论:0
这篇文章主要给大家介绍了利用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="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=""></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){
- $.ajaxFileUpload({
- url: '/admin/slide/upload_image',
- secureurl: false,
- fileElementId: 'file_thumb', //file标签ID
- dataType: 'json', //返回数据类型
- data:{name:'thumb'},
- success:function (data,status){
- $("#info_thumb").val(data);
- $("#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/{$vo.img}" max-width="" max-height="" alt="{$vo.title}"></a>
- <p class="slider-caption">{$vo.title}</p>
- </li>
- {/volist}
- </ul>
- </div>
Tags: ajaxFileUpload ajax异步图片
- 上一篇:thinkphp5实用入门进阶知识点和各种常用功能代码汇总
- 下一篇:最后一页
相关文章
- ·ThinkPHP结合AjaxFileUploader实现无刷新文件上传的方法(2021-04-19)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)