forked from summerblue/larabbs
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
10e3009
commit 9c8b73e
Showing
5 changed files
with
69 additions
and
3 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,41 @@ | ||
<?php | ||
|
||
namespace App\Handlers; | ||
|
||
use Illuminate\Support\Str; | ||
|
||
class ImageUploadHandler | ||
{ | ||
// 只允许以下后缀名的图片文件上传 | ||
protected $allowed_ext = ["png", "jpg", "gif", 'jpeg']; | ||
|
||
public function save($file, $folder, $file_prefix) | ||
{ | ||
// 构建存储的文件夹规则,值如:uploads/images/avatars/201709/21/ | ||
// 文件夹切割能让查找效率更高。 | ||
$folder_name = "uploads/images/$folder/" . date("Ym/d", time()); | ||
|
||
// 文件具体存储的物理路径,`public_path()` 获取的是 `public` 文件夹的物理路径。 | ||
// 值如:/home/vagrant/Code/larabbs/public/uploads/images/avatars/201709/21/ | ||
$upload_path = public_path() . '/' . $folder_name; | ||
|
||
// 获取文件的后缀名,因图片从剪贴板里黏贴时后缀名为空,所以此处确保后缀一直存在 | ||
$extension = strtolower($file->getClientOriginalExtension()) ?: 'png'; | ||
|
||
// 拼接文件名,加前缀是为了增加辨析度,前缀可以是相关数据模型的 ID | ||
// 值如:1_1493521050_7BVc9v9ujP.png | ||
$filename = $file_prefix . '_' . time() . '_' . Str::random(10) . '.' . $extension; | ||
|
||
// 如果上传的不是图片将终止操作 | ||
if ( ! in_array($extension, $this->allowed_ext)) { | ||
return false; | ||
} | ||
|
||
// 将图片移动到我们的目标存储路径中 | ||
$file->move($upload_path, $filename); | ||
|
||
return [ | ||
'path' => config('app.url') . "/$folder_name/$filename" | ||
]; | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
* | ||
!.gitignore |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters