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);