簡體   English   中英

如何通過php上傳一個Excel文件並在網頁上顯示其所有行和列

[英]How to upload one excel file and display all its rows and columns on the web page via php

我正在編寫用於上傳一個excel文件的代碼。並將其完整內容顯示在網頁上。但是,每當用戶單擊“提交”按鈕時,它都會顯示錯誤-“您的文件類型為:application / vnd.openxmlformats-officedocument.spreadsheetml.sheet文件類型必須為text(.txt)或msword(.doc)。”

下面是我的代碼。

 <?php
 if( isset($_POST['submit1'])) {
 // $_FILES is the array auto filled when you upload a file and submit a form.
 $userfile_name = $_FILES['file1']['name']; // file name
 $userfile_tmp  = $_FILES['file1']['tmp_name']; // actual location
 $userfile_size  = $_FILES['file1']['size']; // file size
 $userfile_type  = $_FILES['file1']['type']; 
 $userfile_error  = $_FILES['file1']['error']; // any error!. get from here

 // Content uploading.
  $file_data = '';
 if ( !empty($userfile_tmp))
 {
    $file_data=base64_encode(@fread(fopen($userfile_tmp,'r'),  filesize($userfile_tmp)));

 }

 switch (true)
         {
       // Check error if any
           case ($userfile_error == UPLOAD_ERR_NO_FILE):
        case empty($file_data):
       echo 'You must select a document to upload before you can save this page.';
        exit;
        break;
       case ($userfile_error == UPLOAD_ERR_INI_SIZE):
      case ($userfile_error == UPLOAD_ERR_FORM_SIZE):
     echo 'The document you have attempted to upload is too large.';
   break;

   case ($userfile_error == UPLOAD_ERR_PARTIAL):
  echo 'An error occured while trying to recieve the file. Please try again.';
       break;

        }

     if( !empty($userfile_tmp))
       {
     // only MS office and text file is accepted.
       if( !(($userfile_type=="application/msword") || ($userfile_type=="text/plain") ||       ($userfile_type=="application/vnd.ms-excel")) )
       {echo 'Your File Type is:'. $userfile_type;
      echo '<br>File type must be text(.txt) or msword(.doc).';

       exit;
       }
     }
     echo filesize($userfile_tmp);
    } 
   ?>
     <HTML>
     <HEAD>
    <TITLE> PHP File Upload Script </TITLE>

    </HEAD>
   <BODY>
   <form name="profile" method="POST" action="<?php echo $_SERVER['PHP_SELF'] ?>"   target="_self" enctype="multipart/form-data" >
  <P align ="center"><input type="hidden" name="MAX_FILE_SIZE" value="1000000">

 <input name="file1" type="file" accept="application/vnd.openxmlformats-     officedocument.spreadsheetml.sheet" />

<input type="submit" name="submit1" value="Submit" />
</P>

</form>

</BODY>
</HTML>

請幫忙 。 先感謝您。

您還需要在if條件中添加以下內容,因為您正在檢查application/vnd.ms-excelapplication/msword但文件的標頭與

"application/vnd.openxmlformats-officedocument.spreadsheetml.sheetyour"因此,如果您將其添加到內部,例如

if(($userfile_type=="application/vnd.openxmlformats-officedocument.spreadsheetml.sheetyour")  || ($userfile_type=="application/msword") || ($userfile_type=="text/plain") ||   
 ($userfile_type=="application/vnd.ms-excel")){
 // code
 }

因為服務器將根據接收到的標頭解釋文件類型。

如果要在頁面上顯示Excel文件內容,則應考慮使用PHPExcel。 這是非常容易使用。

鏈接: https//phpexcel.codeplex.com/

范例: https//phpexcel.codeplex.com/wikipage?title = Examples &referringTitle = Home

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM