2012-09-30 46 views
1

我無法上傳圖像,因爲表單的格式爲application/x-www-form-urlencoded。我用這個代碼:yii無法上傳文件(多部分/表單數據未設置)

$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:

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> 
+0

你在瀏覽器上的HTML源代碼上看到了什麼?你的表單標籤是否包含enctype爲「multipart/form-data」? – SuVeRa

+0

@SuVeRa,yes源代碼正確:'

' –

回答

0

我已經想通了,這是EUpdateDialog問題(這是我用來渲染我的形式)。我需要組織ajax上傳

相關問題