您的位置:首页 > 编程学习 > > 正文

laravel操作技巧(Laravel+Intervention实现上传图片功能示例)

更多 时间:2022-01-24 00:18:32 类别:编程学习 浏览量:1638

laravel操作技巧

Laravel+Intervention实现上传图片功能示例

本文实例讲述了Laravel+Intervention实现上传图片功能。分享给大家供大家参考,具体如下:

问题

使用Laravel上传图片

解决

安装Intervention

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

使用Intervention

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

简单修改

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

  • ?
  • 1
  • Image::make(Input::file('photo'))->resize(300, 200)->save('foo.jpg');
  • 由于Intervention保存的时候需要指定图片的保存的文件名,所以我写了一个工具类来生成随机文件名。

  • ?
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • <?php
  • /**
  •  * Created by PhpStorm.
  •  * User: Administrator
  •  * Date: 2017/5/2 0002
  •  * Time: 17:34
  •  */
  • namespace App\Libs;
  • 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;
  •   }
  • }
  • 上传处理

  • ?
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • //上传缩略图
  • 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
  •    ...
  • }
  • 希望本文所述对大家基于Laravel框架的PHP程序设计有所帮助。

    原文链接:https://blog.csdn.net/baochao95/article/details/72582298

    您可能感兴趣