English 中文(简体)
导入超级文件时出错
原标题:Error while import excel file
  • 时间:2012-05-27 07:07:15
  •  标签:
  • php


I have on excel file that has the data of my student table.
Now I am trying to import this file in mysql in my student table.
This is my code to import data from excel to my student table.

<?php
     require_once("class/connection.php");
     include("libs/Excel/reader.php");

    //change-- table name,title and imgdir
    $table_name = "student";
    $title="Excel Import";
    $page = $_SERVER[ PHP_SELF ];

    if($_REQUEST["Save"])
    {
        // ExcelFile($filename, $encoding);
        $data = new Spreadsheet_Excel_Reader();
        // Set output Encoding.
        $data->setOutputEncoding( CP1251 );
        //assign filename
        $data->read($_FILES[ file ][ tmp_name ]);

    for ($x = 2; $x <= count($data->sheets[0]["cells"]); $x++) 
    {
      $studname = $data->sheets[0]["cells"][$x][1];
      $phno = $data->sheets[0]["cells"][$x][2];
      $mobno = $data->sheets[0]["cells"][$x][3];
      $email = $data->sheets[0]["cells"][$x][4];
      $clgname = $data->sheets[0]["cells"][$x][5];
      $streamname = $data->sheets[0]["cells"][$x][6];
      $remarks = $data->sheets[0]["cells"][$x][7];
      $gender = $data->sheets[0]["cells"][$x][8];
      $address = $data->sheets[0]["cells"][$x][9];

    $query = "INSERT INTO " . $table_name . "(studname,phno,mobno,email,clgname,streamname,remarks,gender,address) 
    values( $studname , $phno , $mobno , $email , $clgname , $streamname , $remarks , $gender , $address )";

        mysql_query($query) or die(mysql_error());
     }
  }  

?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Admin Panel -<?php echo $title;?></title>
<link rel="SHORTCUT ICON" type="image/x-icon" href="images/cloelle_favicon.ico">
</head>
<body>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td><?php include("header.php");?></td>
  </tr>
  <tr>
    <td align="center" valign="top"><table width="100%" border="0" cellspacing="0" cellpadding="0">

        <tr>



          <td align="left" valign="top"><table width="100%" border="0" cellspacing="0" cellpadding="0">
                  </table></td>
                <td width="6"><img src="images/home_box_rt.jpg" width="6" height="28" /></td>
              </tr>
              <tr>
                <td background="images/home_box_lbg.jpg">&nbsp;</td>
                <td height="120" align="center" valign="top" class="successmsg">
                    <?php
                        if($_REQUEST[ submit ])
                        {
                            echo "Your data Transfered Successfully!";
                        }
                        else
                        {
                            echo "Please Upload Your Excel File Here!";
                        }
                    ?>
                  <form id="StdForm" name="StdForm" enctype="multipart/form-data" method="post" onsubmit="javascript: return chkValid();">
                    <p>
                      <input type="file" name="file" id="file" />
                    </p>
                    <p>
                      <input type="submit" id="Save" name="Save" class="button" value="submit" />
                    </p>
                  </form></td>
                <td background="images/home_box_rbg.jpg">&nbsp;</td>
              </tr>

            </table></td>

        </tr>

      </table></td>
  </tr>
  <tr>
    <td><?php include("footer.php"); ?></td>
  </tr>
</table>
</body>
</html>

现在当我在错误产生后运行此代码时。

The filename C:xampp	mpphpFCD3.tmp is not readable

so what am i missing.?
thanks in advance

最佳回答

确保您正在尝试阅读的文件以微软 Excel(.xls) 格式保存。 当试图与优秀读者一起阅读时, 我太过错误了, 然后发现我的.xls 扩展文件是 CSV 格式格式化的。 所以我打开了我的文件, 并保存为微软 Excel(.xls) 格式, 它有效 。

问题回答

<?php //for CSV

 function myprintCSV($aryData = array(), $filetype = "csv", $fileNamesalt = "csv", $bolCols = true)
  {


 if (!is_array($aryData) || empty($aryData))
    {
      exit(1);
    }

    // header
    header( Content-Description: File Transfer );
	header( Content-Encoding: UTF-8 );
	if($filetype=="csv"){
    header("Pragma: public");
	header( Content-Type: text/csv; charset=utf-8 );
	header("Content-Disposition: attachment; filename=" . $fileNamesalt . time().".csv");
	}
	 
	
    header( Expires: 0 );
    header( Cache-control: private, must-revalidate );
   header("Pragma: public");
//echo "<pre>";
//print_r($aryData);die;
    // Spaltenoberschriften
    if ($bolCols)
    {
      $aryCols = array_keys($aryData[0]);
      array_unshift($aryData, $aryCols);
    }

    // Ausgabepuffer for fputcsv
    ob_start();

    // output Stream for fputcsv
    $fp = fopen("php://output", "w");
    if (is_resource($fp))
    {
      foreach ($aryData as $aryLine)
      {
       
		fputcsv($fp, $aryLine,  , ,  " );
      }

      $strContent = ob_get_clean();

      // Excel SYLK-Bug
      // http://support.microsoft.com/kb/323626/de
      $strContent = preg_replace( /^ID/ ,  id , $strContent);

      //$strContent = utf8_decode($strContent);
      //$intLength = mb_strlen($strContent,  utf-8 );

      // length
      //header( Content-Length:   . $intLength);

      // kein fclose($fp);
		echo "xEFxBBxBF"; 
      echo $strContent;
      exit(0);
    }
    ob_end_clean();
    exit(1);
  }

//end

//








 
 
function createColumnsArray($end_column, $first_letters =   )
{
  $columns = array();
  $length = strlen($end_column);
  $letters = range( A ,  Z );

  // Iterate over 26 letters.
  foreach ($letters as $letter) {
      // Paste the $first_letters before the next.
      $column = $first_letters . $letter;

      // Add the column to the final array.
      $columns[] = $column;

      // If it was the end column that was added, return the columns.
      if ($column == $end_column)
          return $columns;
  }

  // Add the column children.
  foreach ($columns as $column) {
      // Don t itterate if the $end_column was already set in a previous itteration.
      // Stop iterating if you ve reached the maximum character length.
      if (!in_array($end_column, $columns) && strlen($column) < $length) {
          $new_columns = createColumnsArray($end_column, $column);
          // Merge the new columns which were created with the final columns array.
          $columns = array_merge($columns, $new_columns);
      }
  }

  return $columns;
}




相关问题
Brute-force/DoS prevention in PHP [closed]

I am trying to write a script to prevent brute-force login attempts in a website I m building. The logic goes something like this: User sends login information. Check if username and password is ...

please can anyone check this while loop and if condition

<?php $con=mysql_connect("localhost","mts","mts"); if(!con) { die( unable to connect . mysql_error()); } mysql_select_db("mts",$con); /* date_default_timezone_set ("Asia/Calcutta"); $date = ...

定值美元

如何确认来自正确来源的数字。

Generating a drop down list of timezones with PHP

Most sites need some way to show the dates on the site in the users preferred timezone. Below are two lists that I found and then one method using the built in PHP DateTime class in PHP 5. I need ...

Text as watermarking in PHP

I want to create text as a watermark for an image. the water mark should have the following properties front: Impact color: white opacity: 31% Font style: regular, bold Bevel and Emboss size: 30 ...

How does php cast boolean variables?

How does php cast boolean variables? I was trying to save a boolean value to an array: $result["Users"]["is_login"] = true; but when I use debug the is_login value is blank. and when I do ...

热门标签