フォームがあり、ファイルをアップロードしたいと考えています。ここに私のコードがあります:
<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 -->
送信後、データベースには何も追加されませんでした。firebug を使用して少しデバッグしたところ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
そして2つのデータがforによって送信されtec_data_file
ます(これはdbの私のファイルフィールドです)。最初の var は空です (最初の隠し入力に関連していると思います)。2番目には私のファイルが含まれています。そして、変数をモデルに割り当てて保存するとき:
$modelPhoto->attributes = $_POST['Photo'];
はtec_data_file
空の文字列を取得します! したがって、何もデータベースにアップロードされません。これを解決する方法を知っている人はいますか?もっと私が必要なら