tp6 formData上传图片

22 篇文章 0 订阅
7 篇文章 0 订阅
本文详细介绍了在ThinkPHP6(TP6)框架下,如何使用formData实现图片上传功能。从HTML表单设置、JavaScript监听文件变化、AJAX异步提交,到PHP接收并验证图片,最终将图片保存至服务器,并返回图片路径。实例代码清晰易懂,适合初学者参考。
摘要由CSDN通过智能技术生成

tp6 formData上传图片
html

 <tr  style="height: 150px;">
   <td align="right">站点标志</td>
   <td>
       <input type="file" id="uploadimg"  size="18" />
       <input type="hidden"  value="{$data['site_logo']|default=''}"  name="site_logo" id="site_logo_path"/>
      <a href="{$domain}" target="_blank"><img src="{$data['site_logo']|default=''}" id="site_logo_pic" style="width: 150px;"></a>                 
  </td>
</tr>

js

$('#uploadimg').change(function () {
       var files = this.files;
       //console.log(files);
       if(files.length>0)
       {
           var formData = new FormData();
           formData.append('imageFile',files[0]);
           $.ajax({
               url:"{:url('upload')}",
               data:  formData,
               type:"POST",
               dataType:'JSON',
               processData: false,//数据处理
               contentType: false,//内容类型
               async:false,
               success:function(res){
                   if (res.code == 0){
                       $('#site_logo_path').val(res.data);
                       $('#site_logo_pic').attr('src',res.data);
                       layer.msg(res.msg, {time:1000});
                   }else{
                       layer.msg(res.msg,{anim:6});
                   }
               }
           });
       }

});

php端

 //图片上传
    public function upload()
    {
//        $file=$_FILES['imageFile'];
//        dump($_FILES);
        $data=request()->file();
        $file=$data['imageFile']??'';
        $fileExtArr='jpg,png,jpeg,gif';//图片扩展名
        $filesize=4 * 1024 * 1024;//图片大小
        try{
            // 使用验证器验证上传的文件
            validate(['imageFile' => [
                // 限制文件大小(单位b),这里限制为4M
                'fileSize' => $filesize,
                // 限制文件后缀,多个后缀以英文逗号分割
                'fileExt'  => $fileExtArr
            ]])->check($data);
            $savename = \think\facade\Filesystem::disk('public')->putFile( 'admin', $file);
            $picpath='/storage/'.$savename;
            $picpath=str_replace('\\','/',$picpath);
            return   ajax_return('0','上传成功',$picpath);

        }catch (\think\exception\ValidateException $e) {
            return   ajax_return('-1',$e->getMessage());
        }
    }

希望能帮到一些迷茫的人,未来的日子里继续奋斗。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值