Пару месяцев назад я разработал простое приложение с использованием YII, одной из функций которого была загрузка файла.Эта функция хорошо работала на моем компьютере разработчика, пару дней назад клиент обнаружил, что функция загрузки файлов не работает на его сервере с момента развертывания.
И после этого я тестирую свою машину разработчика, которая тоже не работала.
Мой контроллер выглядит:
public function actionEntry() {
if (!Yii::app()->user->isGuest) {
$model = new TrackForm;
if (isset($_POST['TrackForm'])) {
$entry = new Track;
try {
$entry->product_image = $_POST['TrackForm']['product_image'];
$entry->product_image = CUploadedFile::getInstance($model, 'product_image');
if ($entry->save()) {
if ($entry->product_image) {
$entry->product_image->saveAs($entry->product_image->name, '/trackshirt/uploads');
}
}
$this->render('success', array('model' => $model));
// redirect to success page
}
} catch (Exception $e) {
echo 'Caught exception: ', $e->getMessage(), "\n";
}
} else {
$this->render('entry', array('model' => $model));
}
}
}
Модель похожа на:
<?php
class Track extends CActiveRecord
{
public static function model($className=__CLASS__)
{
return parent::model($className);
}
public function tableName()
{
return 'product_details';
}
}
Мой взгляд выглядит:
<?php
$form = $this->beginWidget('CActiveForm', array(
'id' => 'hide-form',
'enableClientValidation' => true,
'clientOptions' => array(
'validateOnSubmit' => true,
),
'htmlOptions' => array('enctype' => 'multipart/form-data'),
));
?>
<p class="auto-style2"><strong>Administration - Add New Product</strong></p>
<table align="center" style="width: 650px"><td class="auto-style3" style="width: 250px">Product Image</td>
<td>
<?php echo $form->fileField($model, 'product_image'); ?>
</td>
</tr>
</table>
<p class="auto-style1">
<div style="margin-leftL:-100px;">
<?php echo CHtml::submitButton('Submit New Product Form'); ?>
</div>
<?php $this->endWidget(); ?>
Любая идея, где находитсяпроблема? Я пытался отладить его, но каждый раз, когда он возвращает Null.
Спасибо.