У меня есть форма, и я хочу загрузить файл. Вот мой код:Yii framework, загрузка файлов не работает
<div class="form">
<?php $form=$this->beginWidget('CActiveForm', array(
'id'=>'show-form',
'enableAjaxValidation'=>false,
'htmlOptions' => array('enctype' => 'multipart/form-data'),
)); ?>
<fieldset>
<legend>DATI TECNICI</legend>
<div class="row">
<?php echo $form->labelEx($model,'tec_data_file'); ?>
<?php echo $form->fileField($model,'tec_data_file',array('size'=>45,'maxlength'=>45)); ?>
<?php echo $form->error($model,'tec_data_file'); ?>
</div>
</fieldset>
<?php $this->endWidget(); ?>
</div><!-- form -->
Там ничего не было добавлено в базу данных после представления, я сделал немного отладки с поджигатель и выяснили, что filefield
генерирует код, подобный этому:
<input id="ytShow_tec_data_file" type="hidden" name="Show[tec_data_file]" value="">
<input id="Show_tec_data_file" type="file" name="Show[tec_data_file]" maxlength="45" size="45">
и два данные отправляются $_POST
для tec_data_file
(это мое поле файла в db). Первый var пуст (я думаю, что это связано с первым скрытым вводом). а второй содержит мой файл. и когда я задаю переменные в моей модели для сохранения:
$modelPhoto->attributes = $_POST['Photo'];
tec_data_file
получает пустую строку! Поэтому ничто не загружается в мой db. У кого-нибудь есть идея, как это решить? Если вам нужно больше я
Все, что вам нужно, здесь http://www.yiiframework.com/wiki/2/how-to-upload-a-file-using-a-model/ – Puigcerber