Laravel+Intervention 이미지 업로드 기능 예시 구현

이 글 은 Laravel+Intervention 이 이미지 업로드 기능 을 실현 하 는 것 을 실례 로 서술 하 였 다.여러분 께 참고 하도록 공유 하 겠 습 니 다.구체 적 으로 는 다음 과 같 습 니 다.
문제.
Laravel 로 사진 업로드
해결 하 다.
설치 Intervention
이 링크 에 따라 설치 합 니 다.
Intervention 사용
이 문서 에 따라 사용 합 니 다.
단순 수정
아래 코드 를 사용 하면 사진 업로드 가 가능 합 니 다.

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 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;
  }
}

업로드 처리

//     
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 관련 내용 에 관심 이 있 는 독자 들 은 본 사이트 의 주 제 를 볼 수 있다.
본 고 는 Laravel 프레임 워 크 를 바탕 으로 하 는 PHP 프로 그래 밍 에 도움 이 되 기 를 바 랍 니 다.

좋은 웹페이지 즐겨찾기