2012-05-14 7 views
6

Czy to możliwe? To z modelem

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

ale nie chcę, aby stworzyć model tylko tak mogę zapisać mój obraz.

To, czego potrzebuję, to ... cóż, próbuję uruchomić funkcję "Załaduj obraz" CKEditera, ale potrzebuję skryptu do zapisu obrazu. Po kliknięciu przycisku "Prześlij obraz" po prostu wywołuję akcję i stamtąd mam dostęp do obrazu, który wybrałem, używając $_FILES, ale nie mogę zapisać pliku do katalogu docelowego.

Czy można zapisać plik do ścieżki docelowej (na przykład "C: \ myProject \ images") i nie używać modelu?

EDIT:

Oto rozwiązanie znalazłem trochę później plik i przesłać w $_FILES['upload'] tak ..

$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. 
+0

Zapomniałem wspomnieć, jestem totalnie nowy w Yii, proszę nie krzyczeć na mnie prosząc głupie pytania. – Jordashiro

Odpowiedz

8

Zakładając, że "bez modelu" = "bez db stół”

można po prostu zrobić UploadForm.php rozciągający się od CFormModel w katalogu modeli

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', 
     ); 
    } 

} 

aw kontrolerze

$model->upload_file=CUploadedFile::getInstance($model,'upload_file'); 
$model->upload_file->saveAs("C:\myProject\images\".$model->upload_file->name) 
+0

Dziękuję, spróbuję go :) – Jordashiro

+0

jego nie zapisywanie pliku tekstowego Próbowałem, ale bez powodzenia – Erum