2012-10-26 6 views
3

Я пытаюсь сохранить загруженную фотографию в моей базе данных с помощью base64, но я не могу получить данные:Yii сохранить загруженный файл в base64 строку

Форма:

<?php $form=$this->beginWidget('CActiveForm', 
      array(
        'id' => 'upload-form', 
        'enableAjaxValidation' => false, 
        'htmlOptions' => array('enctype' => 'multipart/form-data'), 
      ));?> 
<?php echo $form->fileField($model, 'attachment');?> 

Контроллер:

$model->attributes=$_POST['Post']; 
        //gives me the filename 
     $model->attachment=CUploadedFile::getInstance($model,'attachment'); 

Как получить содержимое, чтобы я мог кодировать?

ответ

5

Делают это так:

$model->attributes=$_POST['Post']; 

//gives me the filename 
$tmpfile = CUploadedFile::getInstance($model,'attachment'); 

$tmpfile_contents = file_get_contents($tmpfile->tempName); 

$model->attachment = base64_encode($tmpfile_contents); 
+0

Он подходит, но еще одну вещь. Если я хочу заполнить ввод пути файла при обновлении, что мне делать? сохранить путь также? – Samson

+0

вам нужно будет сохранить загруженный файл в файловой системе, используя метод «save» вашего экземпляра «CUploadedFile». ознакомьтесь с http://www.yiiframework.com/doc/api/1.1/CUploadedFile#tempName-detail для доступных методов и свойств ... –

Смежные вопросы