// 视图层
'options' => [
'class' => 'form-horizontal',
'enctype' => 'multipart/form-data',
]
<?= $form->field($model, 'new_images[]')->fileInput(['multiple' => true]) ?>
// model 层
public function beforeSave($insert)
{
if (empty($_FILES[array_keys(Yii::$app->request->bodyParams)[0]]['name']['new_images'][0])) {
$this->addError("new_images", "图片必须传递");return false;
}
$contents = explode('<br>',$this->new_contents);
$options = UploadedFile::getInstances($this, 'new_images');
$data = $this->uploadFiles($options);
print_r($data);
}
/**
* 多文件上传
* @param $options
* @return array
*/
public function uploadFiles($options) {
$data = array();
if (empty($options)) {
return $data;
}
foreach ($options as $k => $img) {
$file = Yii::getAlias('@frontend/web/uploads/').date('Y/m/d/');
if (!file_exists($file)) {
mkdir($file,0777,true);
}
$fullName = $file . uniqid() . '.' . $img->getExtension();
$img->saveAs($fullName); //上传,并保存结果
$data[$k] = str_replace(Yii::getAlias('@frontend/web/'), '', $fullName);
}
return $data;
}
// 这个方法位置是yii 自带的方法。地址 如下图!
public function saveAs($file, $deleteTempFile = true)
{
if ($this->error == UPLOAD_ERR_OK) {
if ($deleteTempFile) {
// var_dump($this->tempName);exit;
return $this->image_png_size_add($this->tempName, $file);
// return move_uploaded_file($this->tempName, $file);
} elseif (is_uploaded_file($this->tempName)) {
return copy($this->tempName, $file);
}
}
return false;
}
function image_png_size_add($imgsrc,$imgdst){
list($width,$height,$type)=getimagesize($imgsrc);
$new_width = $width*0.9;
$new_height =$height*0.9;
$flag=false;
switch($type){
case 1:
$giftype=check_gifcartoon($imgsrc);
if($giftype){
// header('Content-Type:image/gif');
$image_wp=imagecreatetruecolor($new_width, $new_height);
$image = imagecreatefromgif($imgsrc);
imagecopyresampled($image_wp, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height);
imagejpeg($image_wp, $imgdst,75);
imagedestroy($image_wp);
$flag=true;
}
break;
case 2:
// header('Content-Type:image/jpeg');
$image_wp=imagecreatetruecolor($new_width, $new_height);
$image = @imagecreatefromjpeg($imgsrc);
imagecopyresampled($image_wp, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height);
imagejpeg($image_wp, $imgdst,75);
imagedestroy($image_wp);
$flag=true;
break;
case 3:
// header('Content-Type:image/png');
$image_wp=imagecreatetruecolor($new_width, $new_height);
$image = imagecreatefrompng($imgsrc);
imagecopyresampled($image_wp, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height);
imagejpeg($image_wp, $imgdst,75);
imagedestroy($image_wp);
$flag=true;
break;
}
return $flag;
}
根目录下的: