2017-02-20 65 views
-2
<?php 
include 'model.php'; 
$rs=new database(); 
if(isset($_POST["Import"])){ 

    echo $filename=$_FILES["file"]["tmp_name"]; 

     if($_FILES["file"]["size"] > 0) 
     { 

      $file = fopen($filename, "r"); 
      while (($emapData = fgetcsv($file, 10000, ",")) !== FALSE) 
      { 

       $res=$rs->insert($emapData[0],$emapData[1],$emapData[2],$emapData[3],$emapData[4],$emapData[5]); 
       $result=mysql_fetch_array($res); 
       if(! $result) 
       { 
        echo "<script type=\"text/javascript\"> 
        alert(\"Invalid File:Please Upload CSV File.\"); 
        window.location = \"result.php?msg=valid\" 
        </script>"; 
       } 
      } 
      fclose($file); 
      echo "<script type=\"text/javascript\"> 
      alert(\"CSV File has been successfully Imported.\"); 
      window.location = \"result.php?msg=valid\" 
      </script>"; 
      mysql_close($conn); 
     } 
} 
?> 

此代碼僅上傳csv文件,但我也想用此代碼上傳xls。如果可能我想上傳所有格式的Excel。其餘代碼工作正常,我也不想改變方法。這段代碼只上傳csv文件,但我也想要xls?

+0

問題是...? –

+1

問題很明顯他希望csv和xls能夠上傳 –

+1

使用'fgetcsv'讀'exel'文件不是一個好主意。 –

回答

0

下載PHPExcel https://github.com/PHPOffice/PHPExcel

創建此功能

function getDataFromExcel($filename) 
{ 
    $excel  = PHPExcel_IOFactory::load($filename); 

    $sheet  = $excel->getSheet(0); 
    $highestRow = $sheet->getHighestRow(); 
    $sheetData = $sheet->toArray(null, true, true, true); 

    return $sheetData; 

} 

它將陣列

返回數據,如果你想知道文件使用的類型,這種方法

function getFileType($key) 
{ 
    //Define type 
    $type = 'unknow'; 
    if(isset($_FILES[$key])) { 
     $file  = $_FILES[$key]; 
     $fileType = $file['type']; 
     if (strrpos($fileType, 'csv')) { 
      $type = 'csv'; 
     } else if (($fileType == 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet') || ($fileType == 'application/vnd.ms-excel')) { 
      $type = 'excel'; 
     } 
    } 
    return $type; 
} 
相關問題