アップロードされたファイルを解析するためのコードを記述しようとしてい.csv
ます。次のコードを書きました。print_r($buffer);
コントローラーは、ステートメントで印刷しようとした配列の形式で CSV ファイルの行を生成し、期待される出力を取得します。文字列は を使用して印刷できますがecho $string;
、データベースに保存する前に編集するためにテキスト フィールドに渡すことができません。
サイトコントローラー
public function actionImport()
{
$buffer[] = array();
if(isset($_POST['submitCSV'])){
$filename=$_FILES['filename']['tmp_name'];
$fp = fopen("$filename","r");
if($fp){
$i = 0;
while(($buffer[$i++] = fgetcsv($fp,1000,",")) !== false)
{}
if(!feof($fp))
echo "Echo: Unexpected fgets() fail\n";
}
fclose($fp);
unset($_POST['submitCSV']);
}
$this->render('index',array('buffer'=>$buffer));
}
見る(index.php)
<div class="form">
<?php echo CHtml::beginForm('site/import',$method='post',$htmlOptions =array('enctype'=>'multipart/form-data')); ?>
<div class="row">
<input type="hidden" name="MAX_FILE_SIZE" value="30000" />
<input type="file" name="filename" value="file">
<?php
echo CHtml::submitButton('Submit', array('name'=>'submitCSV'));
foreach($buffer as $line)
foreach($line as $string)
echo CHtml::activeTextField($string,$htmlOptions = array('value'=>$string));
?>
</div>
<?php echo CHtml::endForm(); ?>