1

フォームの enctype が であるため、画像をアップロードできませんapplication/x-www-form-urlencoded。私はこのコードを使用します:

$form=$this->beginWidget('CActiveForm', array(
    'htmlOptions' => array('enctype' => 'multipart/form-data'),
));

そして、いくつかのファイル入力の場合:

$i = 0;
foreach ($model->scans as $scan) { ?>
    <fieldset>
    ...
    <dd><?php echo $form->fileField($scan,'file_name', array('size'=>'10', 'name'=>get_class($scan).'['.$i.'][file_name]')); ?></dd>
    ...
    </fieldset>
    <?php       $i++;
} ?>

ファイルを選択して送信すると、Firebug に Post data が表示されます。

enctype - "application/x-www-form-urlencoded" 

および空の file_name パラメータ。

$_FILES

空なのでファイルを取得できません。

では、なぜ機能しないの'htmlOptions' => array('enctype' => 'multipart/form-data')でしょうか。

更新: 生成されたフォームの HTML ソースは正しいです:

<form id="yw0" method="post" action="/office/index.php?r=project/profileCreate" enctype="multipart/form-data">
<fieldset>
...
<dd>
<input id="ytProfileScan_0_file_name" type="hidden" name="ProfileScan[0][file_name]" value="">
<input id="ProfileScan_0_file_name" type="file" name="ProfileScan[0][file_name]" size="10">
</dd>
...
</fieldset>
4

1 に答える 1

0

これは EUpdateDialog の問題であることがわかりました (フォームをレンダリングするために使用していました)。ajaxアップロードを整理する必要があります

于 2012-10-01T12:39:57.450 に答える