zoukankan      html  css  js  c++  java
  • Laravel+Intervention上传图片

    问题

    使用Laravel上传图片

    解决

    安装Intervention

    根据这个链接来安装https://packagist.org/packages/intervention/image

    使用Intervention

    根据这个文档来进行使用http://image.intervention.io/getting_started/introduction

    简单修改

    使用下面的代码就能实现上传图片

    Image::make(Input::file('photo'))->resize(300, 200)->save('foo.jpg');

    由于Intervention保存的时候需要指定图片的保存的文件名,所以我写了一个工具类来生成随机文件名。

    <?php
    /**
     * Created by PhpStorm.
     * User: Administrator
     * Date: 2017/5/2 0002
     * Time: 17:34
     */
    
    namespace AppLibs;
    
    
    class UploadUtils {
        /**
         * 随机的文件名
         * @param int $len 随机文件名的长度
         * @return str 随机字符串
         */
        private static function randName($len = 10) {
            return substr(str_shuffle('abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234565789'), 0, $len);
        }
    
        /**
         * 创建文件上传到的路径
         * @return str 文件上传的路径
         */
        private static function createDir() {
            $dir = env('UPLOADPATH') . date('Ymd', time());
            if (is_dir($dir) || mkdir($dir, 0777, true)) {
                return $dir;
            }
        }
    
        /**
         * 获取上传文件的路径
         * @return str 文件的全路径
         */
        public static function getUploadPath($ext = 'jpg') {
            return self::createDir() . '/' . self::randName() . '.' . $ext;
        }
    
    }

    上传处理

     //上传缩略图
     if ($request->hasFile('thumb')) {//存在图片
         $file = $request->file('thumb');
         $path = UploadUtils::getUploadPath($file->guessExtension());//获取保存的文件路径
         Image::make($file)->resize(env('THUMB_WIDTH'), env('THUMB_HEIGHT'))->save($path);//保存
         ...
         #save database
         ...
     }
  • 相关阅读:
    真正明白了引用与对象的关系,就能避开下面这个陷阱
    python 垃圾回收
    字典
    表的操作
    MySQL数据库中的存储引擎
    MySQL数据库的基本操作
    MySQL数据库安装文件夹与配置文件简易说明
    数据库概述
    Arrays类
    Math类
  • 原文地址:https://www.cnblogs.com/cnsec/p/13406999.html
Copyright © 2011-2022 走看看