Yii excel文件不可读

我需要将一个excel文件的信息导入到我的数据库中,但是我不能让它工作,下面是我正在使用的一些代码。

控制器:

Yii::import('application.extensions.phpexcel.*'); require_once 'excel_reader2.php'; if(!empty($_POST)) { $uploadedFile=$_POST['file']; $data = new Spreadsheet_Excel_Reader($uploadedFile); for ($i = 1; $i <= $data->sheets[0]['numRows']; $i++) { for ($j = 1; $j <= $data->sheets[0]['numCols']; $j++) { $content = $data->sheets[0]['cells'][$i][$j]; } } } 

forms在视图:

 <?php $form=$this->beginWidget('CActiveForm', array( 'id'=>'excel-form', 'enableAjaxValidation'=>false, 'action'=>array( '/ZfPersonal/Importar' ), )); ?> <?php echo CHtml::fileField('file','file'); ?> <?php echo CHtml::submitButton('Importar'); ?> 

错误是

 The filename example.xls is not readable. 

谢谢!

编辑

 $file=CUploadedFile::getInstanceByName($_POST['file']); $path = $file->saveAs(Yii::app()->basePath.'\..\bolsa\\'.$file); $data = new Spreadsheet_Excel_Reader($path); 

错误:

 Call to a member function saveAs() on a non-object 

我不知道你的$_POST['file']是否包含上传的文件或文件的path?

  • 如果这是上传的文件,则应在将文件保存到服务器上之后再将其用于Spreadsheet_Excel_Reader

例:

 $file=CUploadedFile::getInstanceByName('file'); if($file !== null) { $file->saveAs('path/to/localFile'); $data = new Spreadsheet_Excel_Reader('path/to/localFile'); } else { //The file hasn't been loaded } 
  • 如果这是你给的文件的本地path,那么你应该检查这个文件的权限:

例如:

 var_dump(fileperms($_POST['file'])); 

如果需要更改其权限

 chmod($_POST['file'], 0644);