TP5,ajax实现异步上传图片

用ajax上传图片需要阻止它处理数据,具体如下

前台代码

  <div class="row cl">
            <label class="form-label col-xs-4 col-sm-2">图片上传:</label>
            <div class="formControls col-xs-8 col-sm-9">
                <input type="file" class="input-text " placeholder="图片" name="image" id="file" value=""></div>
        </div>
    <script type="text/javascript">
                     $("#submit").on("click", function(event) {
                         var form=document.getElementById("form-adv-add");
                         var formdata =new FormData(form);
                         $.ajax({
                             type: "POST",
                             url: "{:url('advinfo/addAdv')}",
                             processData: false,  // 不要处理发送的数据
                             contentType: false,   // 不要设置Content-Type请求头
                             data:formdata,
                             dataType:'json',
                             success: function (data) {
                                 if (data.status == 1) {
                                     alert(data.message);
                                     window.parent.location.reload(); //刷新父页面
                                 } else {
                                     alert(data.message);
                                 }
                             }
                         });
                     })
       </script>

php后台代码

      $file = request()->file('image');//获取上传图片
        // 移动到框架应用根目录/public/uploads/ 目录下
        if ($file) {
            $info = $file->move(ROOT_PATH . 'public' . DS . 'uploads');
            if ($info) {
                $img = $info->getSaveName();//获取名称
                $imgpath = DS.'uploads'.DS.$img;
                $path = str_replace(DS,"/",$imgpath);//数据库存储路径
            } else {
                $status = 0;
                $message = '图片上传失败';
            }
        }else{
            $status = 0;
            $message = '图片上传失败';
            return ['status' => $status, 'message' => $message];
        }

上传预览,html5方法

    $(function () {
        $("#file").change(function (e) {
            var file = e.target.files[0] || e.dataTransfer.files[0];
            $('#photoCover').val(document.getElementById("file").files[0].name);
            if (file) {
                var reader = new FileReader();
                reader.onload = function () {
                    $("img").attr("src", this.result);
                }
                reader.readAsDataURL(file);
            }
        });
    })

上传预览方法参考:https://www.cnblogs.com/len0031/p/7678499.html

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值