2015-03-08 3 views
0

У меня возникла проблема с импортом файла excel с помощью PHPExcel, когда я пытаюсь импортировать, возникает фатальная ошибка: Не удалось открыть файл filename.xls, файл не существует. Как я могу это решить? Это мой код до сих пор.Как импортировать файл Excel с помощью phpexcel и ajax?

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(); // e.g. 10 
    $highestColumn = $worksheet->getHighestColumn(); // e.g 'F' 
    $highestColumnIndex = PHPExcel_Cell::columnIndexFromString($highestColumn); 
} 

echo $_FILES['SelectedFile']['name']; 

ответ

2

$ _FILES [ 'SelectedFile'] [ 'имя'] является ссылкой на имя файла, а не сам файл.

PHP сохраняет загруженный файл во временную папку, определенных в php.ini

Вы можете переместить его и сохранить его на постоянное место, которое является то, что я рекомендую вам сделать, прежде чем пытаться открыть его/разобрать это через PHPExcel.

Вот ссылка:

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

Смежные вопросы