Php Yii excel文件不可读
我需要将excel文件的信息导入我的数据库,但我无法使其正常工作,以下是我正在使用的一些代码 控制器:Php Yii excel文件不可读,php,excel,yii,Php,Excel,Yii,我需要将excel文件的信息导入我的数据库,但我无法使其正常工作,以下是我正在使用的一些代码 控制器: Yii::import('application.extensions.phpexcel.*'); require_once 'excel_reader2.php'; if(!empty($_POST)) { $uploadedFile=$_POST['file']; $data = new Spr
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];
}
}
}
<?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'); ?>
Call to a member function saveAs() on a non-object
谢谢
编辑
$file=CUploadedFile::getInstanceByName($_POST['file']);
$path = $file->saveAs(Yii::app()->basePath.'\..\bolsa\\'.$file);
$data = new Spreadsheet_Excel_Reader($path);
错误:
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];
}
}
}
<?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'); ?>
Call to a member function saveAs() on a non-object
我不确定您的
$\u POST['file']
是否包含上载的文件或文件路径
- 如果这是上传的文件,则在
中使用之前,应将文件保存在服务器上电子表格\u Excel\u阅读器
$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
}
- 如果这是您提供的文件的本地路径,则应检查此文件的权限:
var_dump(fileperms($_POST['file']));
如果需要,还可以更改其权限
chmod($_POST['file'], 0644);
$file=cuploaddedfile::getInstanceByName($\u POST['file']);不好,您应该只将“file”传递给该方法。如果没有找到文件,getInstanceByName可以返回null,我编辑了我的postok,文件为null,因此Cuploaded无法正常工作。是否检查http请求中发送的内容?如果我回显$_POST['file'];它打印example.xls,但我认为问题在于表单或如何获取该文件。您不应该获取“example.xls”,因为您正在加载该文件,您应该会看到一些二进制数据在http请求中传输。当您使用这一行$file=cuploaddedfile::getInstanceByName('file');(所以删掉帖子)你的yii日志里有什么?