7

これは可能ですか?これはモデル付きです

  CUploadedFile::getInstance($model,'newsimage');
  $model->image->saveAs("image\path")

しかし、画像を保存するためだけにモデルを作成したくはありません。

私が実際にこれを必要としているのは...まあ、CKEditorの「画像のアップロード」機能を機能させようとしていますが、画像を保存するためのスクリプトが必要です。[画像のアップロード]ボタンをクリックすると、アクションを呼び出すだけで、そこから、を使用して選択した画像にアクセスできます$_FILESが、ファイルをターゲットディレクトリに保存できないようです。

ファイルをターゲットパス(「C:\ myProject \ images」など)に保存し、モデルを使用しないことは可能ですか?

編集 :

これが私が少し後で見つけた解決策です私がアップロードしたファイルは$_FILES['upload']そうです..

$temp = CUploadedFile::getInstanceByName("upload");  // gets me the file into this variable (  i gues this wont work for multiple files at the same time )
$temp->saveAs("D:/games/" . $temp->name);  // full name , including the filename too.
4

1 に答える 1

8

「モデルなし」=「db テーブルなし」と仮定すると、

モデルディレクトリで CFormModel から拡張された UploadForm.php を作成するだけです

class UploadForm extends CFormModel
{
    public $upload_file;

    public function rules()
    {
        return array(
        array('upload_file', 'file', 'types'=>'jpg,jpeg,gif,png','maxSize'=>10*1024*1024),
        );
    }

    /**
     * Declares attribute labels.
     */
    public function attributeLabels()
    {
        return array(
            'upload_file'=>'Upload File',
        );
    }

}

そしてあなたのコントローラーで

$model->upload_file=CUploadedFile::getInstance($model,'upload_file');
$model->upload_file->saveAs("C:\myProject\images\".$model->upload_file->name)
于 2012-05-14T14:15:30.030 に答える