2017-02-17 4 views
0

私は複数の画像(最大5枚)を保存したいのですが、どうすればいいですか? は、私は、この入力した画像を保存するには:yii2で複数の画像を保存する

?= $form->field($Form, 'images[]')->fileInput(['multiple' => true, 'accept' => 'image/*','id'=>'gallery-photo-add'])->label(false) ?> 

をそして、私のモデルでは、私はフィールド画像と5枚の画像保存するために必要ためフィールドを持っています。 しかし、私はそのように画像を取得しようとしているとき:

$Form->image1 = $this->images[0]; 

この1つは私のデシベルで空になっています。 おそらく問題は$ _FILESに大量に保存されていることですか?

$_FILES 
Name Value 
Form [ 
    'name' => [ 
     'images' => [ 
      0 => 'weight.png' 
     ] 
    ] 
    'type' => [ 
     'images' => [ 
      0 => 'image/png' 
     ] 
    ] 
    'tmp_name' => [ 
     'images' => [ 
      0 => 'W:\\XAMPP\\tmp\\php3FD3.tmp' 
     ] 
    ] 
    'error' => [ 
     'images' => [ 
      0 => 0 
     ] 
    ] 
    'size' => [ 
     'images' => [ 
      0 => 500 
     ] 
    ] 
] 

答えて

0

あなたはYii2のにUploadedFileクラスを使用する必要があり、複数の画像を保存するには:私は私の要求を持っている何 。 たとえば、データベースに複数の画像を保存したいとします。お使いのコントローラのコードのようなものです:

namespace app\controllers; 

use Yii; 
use yii\web\Controller; 
use app\models\UploadForm; 
use yii\web\UploadedFile; 

class SiteController extends Controller 
{ 
    public function actionUpload() 
    { 
     $model = new UploadForm(); 

     if (Yii::$app->request->isPost) { 
      $model->imageFiles = UploadedFile::getInstances($model, 'imageFiles'); 
      if ($model->upload()) { 
       // file is uploaded successfully 
       return; 
      } 
     } 

     return $this->render('upload', ['model' => $model]); 
    } 
} 

これはモデルです:

あなたはデシベルに画像を保存したり、フォルダに保存し、それぞれのフィールドに画像のパスを書くことができ、あなたのアップロード機能で
namespace app\models; 

use yii\base\Model; 
use yii\web\UploadedFile; 

class UploadForm extends Model 
{ 
    /** 
    * @var UploadedFile[] 
    */ 
    public $imageFiles; 

    public function rules() 
    { 
     return [ 
      [['imageFiles'], 'file', 'skipOnEmpty' => false, 'extensions' => 'png, jpg', 'maxFiles' => 4], 
     ]; 
    } 

    public function upload() 
    { 
     if ($this->validate()) { 
      foreach ($this->imageFiles as $file) { 
       $file->saveAs('uploads/' . $file->baseName . '.' . $file->extension); 
      } 
      return true; 
     } else { 
      return false; 
     } 
    } 
} 

あなたのテーブルに。

+0

ここでは、UploadedFileのドキュメントを読むことができます。http://www.yiiframework.com/doc-2.0/yii-web-uploadedfile.html –

関連する問題