如何使用phpexcel和ajax导入excel文件?

我在使用PHPExcel导入excel文件时遇到问题,当我尝试导入时,有一个致命错误:无法打开'filename.xls',文件不存在。 我如何解决这个问题? 这是我的代码到目前为止。

javascript / Ajax上传文件:

function load_file(id,url,type,data,json,callback) { var xmlhttp; var fdata = new FormData(); fdata.append('SelectedFile', data); (window.XMLHttpRequest)?xmlhttp = new XMLHttpRequest():xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); xmlhttp.onreadystatechange=function() { if(xmlhttp.readyState==4 && xmlhttp.status==200) { ((id != "")?(document.getElementById(id).innerHTML = xmlhttp.responseText):(((json == true)?(callback(JSON.parse(xmlhttp.responseText))):(callback(xmlhttp.responseText))))); } } xmlhttp.open(type,url,true); if(type == "POST") { xmlhttp.send(fdata); } else { xmlhttp.send(); } } load_file("","../../../phpscript/management/import_excel.php","POST",subNavigationAidToolFileInput.files[0],false,function(data) { alert(data); }); 

PHP:

 /* Database Connection */ include_once "../global/db_connect.php"; require "../../resources/widgets/PHPExcel_1.8.0_doc/Classes/PHPExcel.php"; require_once "../../resources/widgets/PHPExcel_1.8.0_doc/Classes/PHPExcel/IOFactory.php"; $Connection = new connection(); $objPHPExcel = PHPExcel_IOFactory::load($_FILES['SelectedFile']['name']); foreach ($objPHPExcel->getWorksheetIterator() as $worksheet) { $worksheetTitle = $worksheet->getTitle(); $highestRow = $worksheet->getHighestRow(); // eg 10 $highestColumn = $worksheet->getHighestColumn(); // eg 'F' $highestColumnIndex = PHPExcel_Cell::columnIndexFromString($highestColumn); } echo $_FILES['SelectedFile']['name']; 

$ _FILES ['SelectedFile'] ['name']是对文件名的引用而不是文件本身。

php将上传的文件存储到php.ini中定义的临时位置

然后,您可以将其移动并将其保存到永久位置,这是我build议您在尝试访问/通过PHPExcelparsing之前执行的操作。

这里有一个参考:

http://php.net/manual/en/features.file-upload.post-method.php