thinkphp5实现ajax图片上传,压缩保存到服务器

javascript 复制代码
<div class="warp">
      <input type="file" id="file"  accept="image/*" onchange="upimg(this)" />
 </div>
<img src="" />
<script>
    //上传图片方法
     function upimg(obj){
         var fileData = obj.files[0];//这是我们上传的文件
         console.log(fileData)
         var formData = new FormData();
         // 服务端要求参数是 pic1
         formData.append('image',fileData);
         $.ajax({
             url:"{:url('user/upmemberphoto')}",
             type:'post',
             data:formData,
             cache: false, //上传文件不需要缓存
             processData: false, // 告诉jQuery不要去处理发送的数据
             contentType: false, // 告诉jQuery不要去设置Content-Type请求头
             success:function(data){
                 console.log(data);
                 // 设置图片预览功能
                 $('.head-img').attr('src',data.picAddr);
             }
         })
     }
</script>

thinkphp压缩图片插件官方地址

使用Composer安装ThinkPHP5的图像处理类库:

composer require topthink/think-image

php 复制代码
    //上传会员照片接口
    public function upmemberphoto(){
        // 获取上传文件
        $file =  request()->file('image');


        $url=ROOT_PATH.'/public/uploads/member';

        // 移动到本地服务器==这个是保存原图
        $info = $file->move($url);

        if ($info) {
            $tempstr=$info->getSaveName();
            $tempstr=str_replace("\\","/",$tempstr);

            $imgurl=$url.'/'.$tempstr;

            // 按照原图的比例生成一个最大为320*320的缩略图并保存为thumb.png==这个是压缩后保存
            $image = \think\Image::open($imgurl);
            $image->thumb(320,320)->save($imgurl);

            return ['code' => 200, 'message' =>'上传成功','data'=>'/uploads/member/'.$tempstr];
        } else {
            // 文件上传失败
            return ['code' => 400, 'message' => '上传失败'];
        }
    }
相关推荐
C++ 老炮儿的技术栈4 小时前
C++ const 的3个核心作用
服务器·c语言·c++·算法·c
论文复现现场4 小时前
8卡 A100 服务器哪里租?NVLink、RDMA 与 NCCL 验收指南
linux·服务器·php·分布式训练·rdma·nvlink·nccl
派小心.4 小时前
多端数据分析平台的漏斗可以跨端搭建吗?5 步搭出跨端转化漏斗
大数据·运维·服务器·前端·数据分析
IT_陈寒4 小时前
为什么我的React组件一直在意外重渲染?
前端·人工智能·后端
Su米苏4 小时前
基于 Token 预算的上下文压缩控制器(Context Compaction Controller)
前端·数据库·人工智能
骇客野人4 小时前
Java 开发组件大全覆盖后端主流技术栈(基础、Web、ORM、中间件、微服务、安全、工具、测试、运维、信创适配常用组件)
java·前端·中间件
风骏时光牛马5 小时前
大模型底层架构与推理流程AI源码深度剖析
前端
等我调个Bug5 小时前
Linux基本指令
linux·服务器
_upupup14 小时前
Linux的调试工具——gdb/cgdb
linux·服务器
Setsuna_F_Seiei14 小时前
前端转型 Agent 开发 06 之 Agent Memory 记忆系统(让 Agent 更智能,更懂你)
前端·agent·ai编程