FastAdmin上传图片服务端压缩图片,实测13.45M压缩为29.91K

这篇具有很好参考价值的文章主要介绍了FastAdmin上传图片服务端压缩图片,实测13.45M压缩为29.91K。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

先前条件:第一步安装compose,已安装忽略。
先上截图看效果
FastAdmin上传图片服务端压缩图片,实测13.45M压缩为29.91K,fastadmin,php

一、在fastadmin的根目录里面输入命令安装think-image
FastAdmin上传图片服务端压缩图片,实测13.45M压缩为29.91K,fastadmin,php

composer require topthink/think-image

二、找到公共上传类,application/common/library/Upload.php,在最下面新添加一个压缩方法

    /**
     * 图片压缩方法
     */
    public function compressImage(&$params, $ratio = 10)
    {
        //图片大于300K才进行压缩,先判断是横图,还是坚图,设置图片宽最大820,高最大560,做出相对应的比例压缩
        if ($params['filesize'] > 300000) {
            //横图=宽比高大
            if ($params['imagewidth'] >= $params['imageheight']) {
                if ($params['imagewidth'] >= 820) {
                    $width = 820;
                    $height = round($params['imageheight'] / ($params['imagewidth'] / 820));
                } else {
                    $width = $params['imagewidth'];
                    $height = $params['imageheight'];
                }
            } else { //坚图=高比宽大
                if ($params['imageheight'] >= 560) {
                    $height = 560;
                    $width = round($params['imagewidth'] / ($params['imageheight'] / 560));
                } else {
                    $width = $params['imagewidth'];
                    $height = $params['imageheight'];
                }
            }

            $pathname = $params['url'];
            $file = $this->file;
            $image = \think\Image::open($file);
            $image->thumb($width, $height)->save('.' . $pathname);
            $image_root_path = ROOT_PATH . '/public' . $pathname;
            $params['imagewidth'] = $width;
            $params['imageheight'] = $height;
            $params['filesize'] = filesize($image_root_path);
        }
    }

三、在application/common/library/Upload.php文件中,找到里面的 upload() 方法,在文件上传完成,将要添加到attachment表的图片数据时进行等比压缩处理
FastAdmin上传图片服务端压缩图片,实测13.45M压缩为29.91K,fastadmin,php文章来源地址https://www.toymoban.com/news/detail-801215.html

        // 开启压缩
        if (in_array($this->fileInfo['type'], ['image/gif', 'image/jpg', 'image/jpeg', 'image/bmp', 'image/png', 'image/webp']) || in_array($this->fileInfo['suffix'], ['gif', 'jpg', 'jpeg', 'bmp', 'png', 'webp'])) {
            $this->compressImage($params);
        }

到了这里,关于FastAdmin上传图片服务端压缩图片,实测13.45M压缩为29.91K的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 小程序图片上传压缩

    上传图片是小程序常见的功能,例如点评类小程序邀请用户分享照片、电商类小程序要求商家上传商品照片。 伴随着照片像素越来越高,图片体积越来越大,小程序开发者需要压缩图片,否则将导致用户上传图片失败或加载时间过长等影响体验的情况。 小程序提供 wx.choose

    2024年02月10日
    浏览(42)
  • 前端Vue图片上传组件支持单个文件多个文件上传 自定义上传数量 预览删除图片 图片压缩

    前端Vue图片上传组件支持单个文件多个文件上传 自定义上传数量 预览删除图片 图片压缩, 下载完整代码请访问uni-app插件市场址:https://ext.dcloud.net.cn/plugin?id=13099 效果图如下: 组件初始化 使用方法 HTML代码部分

    2024年02月09日
    浏览(75)
  • Vue前端压缩图片后上传,拍照上传最佳实践

    最近有一个需求,通过手机拍照后上传图片到服务器,大家应该都知道,现在的手机像素实在是太高了,随便拍一张都是 10M 以上,直接上传到服务器一方面是浪费存储空间,另外就是特别浪费流量,如果网络不好还很慢。所以想寻求一种前端压缩图片的方案。 在网上找了很

    2024年02月10日
    浏览(65)
  • Element-ui 上传图片前压缩图片

    上传前把图片大小进行一个压缩在进行上传。 文章目录 需求:项目当中上传图片的需求点肯定有很多,再上传之后,如果图片很大的话,在加载的时候就会很慢。最近发现系统首次加载越来越慢,就开始思考怎么能降低这个加载时间,由于首页图片很多,所以图片的大小就

    2024年02月06日
    浏览(57)
  • 微信小程序上传图片压缩方案

    小程序上传图片需要进行压缩,可以使用wx.getFileSystemManager()方法将图片转换成base64格式,再使用canvas将图片压缩成指定大小。 首先使用wx.chooseImage()方法选择了一张图片,然后使用wx.getFileSystemManager()方法将图片转换成base64格式。接着使用canvas进行压缩,并将canvas转换成图片

    2024年02月11日
    浏览(67)
  • uniapp图片上传与压缩,兼容小程序与H5

    图片上传借助了Uview2.0的组件 压缩代码

    2024年02月13日
    浏览(42)
  • 微信小程序uniapp中的图片上传,压缩,预览,删除

    页面部分 1:图片上传 2:图片压缩 3:图片预览 4:图片删除

    2024年02月11日
    浏览(65)
  • 【vue3】前端上传图片的格式大小限制和压缩

    目录 前言 对上传图片进行格式大小限制 压缩上传图片 上篇文章中研究了如何使用双token机制,在此篇中就暴露了一些问题:当accesstoken过期后,直到拿到最终想要得到的数据,期间需要经历三次请求——第一次请求,拿到accesstoken过期的消息——第二次携带refreshtoken发起请求

    2024年02月06日
    浏览(75)
  • uniapp 上传压缩图片 兼容h5和小程序的方法

    项目是用uniapp开发的,当时只是做App端,后来项目扩展到H5端, uniapp框架可以跨平台所以移动端和H5使用的是一套代码 上传头像的时候要求图片的大小在2MB一下,所以要压缩图片,App端当时使用的是uni.compressImage(OBJECT)压缩的(详情见:https://uniapp.dcloud.net.cn/api/media/image.html#

    2024年04月17日
    浏览(36)
  • vue2上传图片image-conversion压缩

    项目中涉及上传图片,如果大体积的一般都需要压缩,这里我使用image-conversion来压缩 其实在npm中使用已经说得很明白了,我这里记录一下跟element ui上传组件配合使用 1、安装image-conversion 2、引入使用 2.1、这里配合element ui的上传组件配合使用 上传前方法中处理压缩逻辑,压

    2024年01月21日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包