levaral-dev / upload-v2
此软件包已被 弃用 并不再维护。未建议替代软件包。
此软件包的最新版本(dev-master)没有可用的许可信息。
用于 Laravel 框架的 Levaral 文件上传软件包
dev-master
2018-11-19 10:49 UTC
Requires
- php: ^7.0
- intervention/image: ^2.3
- laravel/framework: 5.7.*
- levaral-dev/core-v2: dev-master|^1.0
- spatie/laravel-image-optimizer: 1.1.*
This package is not auto-updated.
Last update: 2021-01-30 03:01:11 UTC
README
composer require levaral-dev/upload-v2:dev-master
运行 laravel publish,这将创建配置文件 upload.php 和迁移
php artisan vendor:publish --provider="Levaral\Upload\UploadServiceProvider"
将路由放入 routs/web.php 或 routs/api.php, wherever you want,如果你在 web.php 中添加路由,则必须在 VerifyCsrfToken 中间件中接受 URL
Action::post('upload', \Levaral\Upload\Http\PostUpload::class, 'upload');
配置
return [ // storage disk 'disk' => env('UPLOAD_DISK', 'public'), // file fields configration 'files' => [ 'sample_logo' => [ //Required: field 'resize' => [ //Optional: Resize options, use with images 'thumb' => [ //possible resize options 'height' => 100, 'width' => 100, 'fit' => 'stretch', // ['stretch', 'crop', 'contain', 'max', 'fill', 'pad'] 'crop' => [ 'x' => 100, 'y' => 100 ], 'color' => '#ffffff' 'create_on_upload' => true //Optional: create resize image upfront ] ], 'validation' => 'required|mimes:jpeg,png,gif|size:2000', //Required: laravel validation string //Optional: //'optimize' => true, //optimize image on upload //'keep_original_file' => true //Note: this might take time if the image file is uploaded to cloud ], 'sample_document' => [ //Required: field 'validation' => 'required|size:2000', //Required: laravel validation string ] ], ];
POST 请求
POST 请求接受两个参数(file_upload, file_field)。在 'file_upload' 中传递文件,在 'file_field' 中传递字段名,例如 company_logo, product_images 等...
POST 响应
{
"success": true,
"upload_id": 25,
"url": "http://testl6.test/storage/uploads/bcb6a904-5a9f-415c-b1d1-0c35e7cda1a4/download.png",
"urls": {
"thumb": "http://testl6.test/storage/cache/bcb6a904-5a9f-415c-b1d1-0c35e7cda1a4/download-thumb.png"
}
}
通过 URL 获取文件并上传
为此,请使用 FileUploadService
类并将其注入到您的控制器类或其他类中,例如
$upload = $this->fileUploadService->uploadFileByUrl('http://vkwins.com/wp-content/uploads/2017/10/Lorem-Ipsum.jpg', 'sample_logo');
使用 Upload Eloquent 对象获取原始文件 URL 或调整大小后的图像 URL
$upload->getPublicUrl(); // will return original uploaded file url
$upload->getPublicUrl('sample_logo.resize.thumb'); // will return resized image url
删除所有超过 24 小时的冗余文件
php artisan levaral:delete-files
重新生成所有调整大小后的图像或特定 file_field
levaral:generate-images {fileField?}
图像优化
图像优化依赖于 laravel 软件包 https://github.com/spatie/laravel-image-optimizer,要安装图像优化工具,请运行以下命令
sudo apt-get install jpegoptim
sudo apt-get install optipng
sudo apt-get install pngquant
sudo npm install -g svgo
sudo apt-get install gifsicle
批量优化上传的图像,这将仅优化图像
levaral:optimize-images {fileField?}
通过指定路径来优化图像,这将仅优化图像
levaral:optimize-images {path} //give {path} like public, public/theme/images