Laravel 5 干预图像上传多次调整大小并保存到数据库的路径
Laravel 5 intervention image upload multiple resize and save path to database
我已经能够遵循这个answer并且我实际上可以创建多个图像尺寸。
我的问题是,如何将每个路径保存到数据库。
public function store(Request $request)
{
$input= $request->all();
$file = $input['image'];
$destinationPath='images/products';
$destinationPathlarge='images/products/large';
$extension = $file->getClientOriginalExtension();
$fileName = rand(111,999).'.'.$extension;
$image = $destinationPath . '/' .$fileName;
$upload_success= $file-> move($destinationPath,$fileName);
$doc = new Products();
$doc->name = $input['name'];
$doc->price = $input['price'];
$doc->description = $input['description'];
$doc->s_description = $input['s_description'];
$doc->brands_id = $input['brands_id'];
$doc->categories_id = $input['categories_id'];
$upload = Image::make($image)->resize(190,185)->save($destinationPath. '/' .$fileName)
->resize(100,100)->save($destinationPathlarge. '/'.$fileName);
$doc->save();
您应该创建一个合适的 Eloquent 模型。
首先,运行 项目文件夹中的 artisan 命令。
php artisan make:model MyImage
这将创建 'MyImage' Eloquent 模型及其数据库迁移。
通过向 up() 函数添加新的路径字段来编辑新创建的迁移文件,如下所示:
Schema::create('my_images', function(Blueprint $table)
{
$table->increments('id');
$table->string('path_190');
$table->string('path_100');
$table->timestamps();
});
运行 新迁移以对您的数据库进行更改。
然后,在 App\MyImage 模型 class 中,添加 fillable
属性 以启用路径字段的填充:
class Image extends Model {
protected $fillable = [
'path_100',
'path_190',
];
}
现在添加到控制器的存储操作:
App\MyImage::create([
'path_100' => asset($destinationPathlarge. '/'.$fileName100),
'path_190' => asset($destinationPathlarge. '/'.$fileName190),
])->save();
希望对您有所帮助:)
我已经能够遵循这个answer并且我实际上可以创建多个图像尺寸。
我的问题是,如何将每个路径保存到数据库。
public function store(Request $request)
{
$input= $request->all();
$file = $input['image'];
$destinationPath='images/products';
$destinationPathlarge='images/products/large';
$extension = $file->getClientOriginalExtension();
$fileName = rand(111,999).'.'.$extension;
$image = $destinationPath . '/' .$fileName;
$upload_success= $file-> move($destinationPath,$fileName);
$doc = new Products();
$doc->name = $input['name'];
$doc->price = $input['price'];
$doc->description = $input['description'];
$doc->s_description = $input['s_description'];
$doc->brands_id = $input['brands_id'];
$doc->categories_id = $input['categories_id'];
$upload = Image::make($image)->resize(190,185)->save($destinationPath. '/' .$fileName)
->resize(100,100)->save($destinationPathlarge. '/'.$fileName);
$doc->save();
您应该创建一个合适的 Eloquent 模型。
首先,运行 项目文件夹中的 artisan 命令。
php artisan make:model MyImage
这将创建 'MyImage' Eloquent 模型及其数据库迁移。
通过向 up() 函数添加新的路径字段来编辑新创建的迁移文件,如下所示:
Schema::create('my_images', function(Blueprint $table)
{
$table->increments('id');
$table->string('path_190');
$table->string('path_100');
$table->timestamps();
});
运行 新迁移以对您的数据库进行更改。
然后,在 App\MyImage 模型 class 中,添加 fillable
属性 以启用路径字段的填充:
class Image extends Model {
protected $fillable = [
'path_100',
'path_190',
];
}
现在添加到控制器的存储操作:
App\MyImage::create([
'path_100' => asset($destinationPathlarge. '/'.$fileName100),
'path_190' => asset($destinationPathlarge. '/'.$fileName190),
])->save();
希望对您有所帮助:)