Thinkphp怎么结合ajaxFileUpload实现ajax异步图片传输

后端开发   发布日期:2023年08月18日   浏览次数:470

这篇文章主要介绍“Thinkphp怎么结合ajaxFileUpload实现ajax异步图片传输”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Thinkphp怎么结合ajaxFileUpload实现ajax异步图片传输”文章能帮助大家解决问题。

1、引用文件

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

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

2、HTML代码

  1. <div class="form-group">
  2. <label class="col-sm-2 control-label">缩略图</label>
  3. <div class="col-sm-8">
  4. <div id="file-pretty">
  5. <div>
  6. <input type="file" id="file_thumb" name="thumb" class="form-control" value="">
  7. <div class="input-append input-group">
  8. <span class="input-group-btn">
  9. <button id="btn_thumb" class="btn btn-white" type="button">选择图片</button>
  10. </span>
  11. <input id="info_thumb" name="thumb" class="input-large form-control" type="text" value="{$info.img}">
  12. </div>
  13. </div>
  14. </div>
  15. </div>
  16. <div class="col-sm-2"><img id="show_thumb" src="/uploads/image/{$info.thumb}" alt=""></div>
  17. </div>

3、JS代码

  1. <script type="text/javascript">
  2. $(function(){
  3. $("#btn_thumb").click(function(){
  4. $("#file_thumb").click();
  5. });
  6. //异步上传
  7. $("body").delegate('#file_thumb', 'change', function(){
  8. var filepath = $("input[name='thumb']").val();
  9. var arr = filepath.split('.');
  10. var ext = arr[arr.length-1];
  11. //alert(filepath);exit();
  12. if('gif|jpg|png|bmp'.indexOf(ext)>=0){
  13. $.ajaxFileUpload({
  14. url: '/admin/slide/upload_image',
  15. secureurl: false,
  16. fileElementId: 'file_thumb', //file标签ID
  17. dataType: 'json', //返回数据类型
  18. data:{name:'thumb'},
  19. success:function (data,status){
  20. $("#info_thumb").val(data);
  21. $("#show_thumb").attr('src','/uploads/images/'+data);
  22. $("#info_thumb").focus();
  23. },
  24. complete:function (XMLHttpRequest){
  25. },
  26. error:function (data,status,e){
  27. layer.alert('上传失败!');
  28. },
  29. });
  30. } else {
  31. //清空file
  32. $("#file_thumb").val("");
  33. layer.alert('请上传合适的图片类型!');
  34. }
  35. });
  36. });
  37. </script>

4、后台处理(PHP)

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

5、前台调用

  1. <div id="slideshow">
  2. <ul class="rslides" id="slider">
  3. {volist name="data" id="vo"}
  4. <li><a href="https://www.19jp.com">

以上就是Thinkphp怎么结合ajaxFileUpload实现ajax异步图片传输的详细内容,更多关于Thinkphp怎么结合ajaxFileUpload实现ajax异步图片传输的资料请关注九品源码其它相关文章!