我正在为我的 laravel 项目使用 Unisharp 文件上传。包工作正常。现在我想要的是,我想要文件类型的数组,如:
[name] => MyFile.jpg
[type] => image/jpeg
[tmp_name] => /tmp/php/php6hst32
[error] => UPLOAD_ERR_OK
[size] => 98174
Unisharp 文件管理器的图像 URL。假设如果我http://example.com/storage/files/42/lace-up.png
从 Unisharp 文件管理器中选择,我想获得像上面这样的文件数组。
我想要这个,因为我想相应地调整图像大小并将它们存储到不同的文件夹中。
我创建了以下函数来上传和调整图像大小:
function uploadImage($file, $dir, $thumb_dimension=null){
$path = public_path().'/uploads/'.$dir;
if(!File::exists($path)){
File::makeDirectory($path, 0777, true, true);
}
$file_name = ucfirst($dir).'-'.date('Ymdhis').rand(0,999).".".$file->getClientOriginalExtension();
$success = $file->move($path, $file_name);
if($success){
$file_path = $path.'/'.$file_name;
if($thumb_dimension){
list($width,$height) = explode('x',$thumb_dimension);
Image::make($file_path)->resize($width,$height, function($const){
$const->aspectRatio();
})->save($path.'/Thumb-'.$file_name);
}
return $file_name;
} else {
return null;
}
}
可能吗?
编辑
获取图像详细信息后,我想使用以下功能。
function uploadImage($file, $dir, $thumb_dimension=null){
$path = public_path().'/uploads/'.$dir;
if(!File::exists($path)){
File::makeDirectory($path, 0777, true, true);
}
$file_name = ucfirst($dir).'-'.date('Ymdhis').rand(0,999).".".$file->getClientOriginalExtension();
$success = $file->move($path, $file_name);
if($success){
$file_path = $path.'/'.$file_name;
if($thumb_dimension){
list($width,$height) = explode('x',$thumb_dimension);
Image::make($file_path)->resize($width,$height, function($const){
$const->aspectRatio();
})->save($path.'/Thumb-'.$file_name);
}
return $file_name;
} else {
return null;
}
}