<td id="nvp8e"><strike id="nvp8e"></strike></td>
    <td id="nvp8e"><ruby id="nvp8e"><mark id="nvp8e"></mark></ruby></td>
  1. <acronym id="nvp8e"><label id="nvp8e"></label></acronym>
    <acronym id="nvp8e"><label id="nvp8e"></label></acronym>

      藏刊網,職稱文章發表、期刊投稿權威機構

      投稿咨詢

      投稿在線咨詢

      專著咨詢

      合著&獨著&編委

      編輯在線咨詢

      專利咨詢

      專利申請&轉讓

      編輯在線咨詢

      軟著版權

      軟著版權

      編輯在線咨詢

      在線溝通

      論文&專著&專利

      編輯在線咨詢

      微信聊

      微信掃一掃

      首頁 > 計算機論文 > > PHP文件上傳類的程序實現
      PHP文件上傳類的程序實現
      >2024-05-28 09:00:00



      引 言

      在 Web 應用程序開發中,通常文件上傳是不可缺少的功能.用戶可以根據各種需求將文檔資料或圖像視頻等資料上傳到 Web 服務器.由于上傳文件的類型、大小及編碼方式的不同,開發者在設計上傳模塊時必須考慮到各種可能出現的問題.當客戶端使用 HTTP 協議進行文件上傳,文件上傳過程是比較復雜的.根據網站上傳文件的各種需求,開發為實現這些功能的類可以有效地解決文件上傳問題.

      1 文件上傳過程介紹與配置文件設置

      本 文 使 用 的 開 發 環 境 為 Wndows+A-pache+MySQL+PHP.PHP 可以實現多種瀏覽器上傳文件.文件上傳的過程其實就是一個文件復制的過程,客戶端通過 HTTP 協議以 POST 方式將表單提交給服務器后,上傳的文件被放置在臨時目錄里,服務器端腳本對文件進行進一步處理,一般是要將文件從臨時目錄移動到指定的目錄中,需要使用函數move_uploaded_file 移動提交的文件,進而完成整個文件上傳過程.

      配置文件 php.ini 中設置參數如下

      file_uploads :設為 On,允許通過 HTTP 上傳文件upload_tmp_dir :文件上傳至服務器時用于臨時存儲的目錄,如果沒指定,系統會使用默認的臨時文件夾.

      upload_max_filesize :允許上傳文件大小的最大值,默認情況下 PHP 上傳文件大小為 2 M,用戶需要上傳大于 2 M 的文件,但是利用 HTTP 協議又不能上傳太大的文件,因此,需要適當修改相關參數.

      upload_max_filesize 設置數值可以大于 2 M,即允許上傳文件的最大值可以大于默認的 2 M.

      post_max_size:PHP 可接收的 post 數據的最大值,該值應大于允許上傳文件大小的最大值.設置post_max_size 數值可以大于 8 M,8 M 通常是通過表單 POST 給 PHP 的所能接收的最大值,包括表單里的所有值.

      memory_limit:腳本所占的最大內存數,該值要大于允許上傳的文件大小.

      max_execution_time:腳本運行的最長時間\\(s\\),默認 30 S.

      2 實現文件上傳的類

      定義一個上傳類 upload,其構造函數如下.

      function __construct \\($fileArr, $savename, $savepath,
      $fileformat, $overwrite = 0,$maxsize = 0\\) {
      $this->file = $fileArr['file'];
      $this->file_name = $fileArr['name'];
      $this->file_size = $fileArr['size'];
      $this->file_type = $fileArr['type'];
      $this->get_ext\\(\\);
      $this->set_savepath\\($savepath\\);
      $this->set_fileformat\\($fileformat\\);
      $this->set_overwrite\\($overwrite\\);
      $this->set_savename\\($savename\\);
      $this->set_maxsize\\($maxsize\\);
      }

      在構造函數中,參數$fileArr 為文件數組,name為上傳文件名,size 為上傳文件大小,type 為上傳文件類型,參數 savename 為文件保存名,參數 savepath 為文件保存路徑,參數 fileformat 為文件格式,參數 over-write 指是否覆蓋文件,參數 maxsize 為文件最大值.

      接下來運行的程序要檢查文件格式、檢查目錄是否可寫入文件、檢查文件是否已經存在、檢查文件大小是否超過限制,然后使用 move_uploaded_file 函數上傳文件,代碼如下.

      if \\(!$this->validate_format\\(\\)\\)
      {
      $this->errno = 1;
      return false;
      }
      if\\(!@is_writable\\($this->savepath\\)\\)
      {
      $this->errno = 2;
      return false;
      }
      if \\($this->overwrite == 0 && @file_exists\\($th-
      is->savepath.$this->savename\\)\\)
      {
      $this->errno = 3;
      return false;
      }
      if \\($this->maxsize != 0 \\)
      {
      if \\($this->file_size > $this->maxsize\\)
      {
      $this->errno = 5;
      return false;
      }
      }
      if \\(!move_uploaded_file \\($this->file, $th-
      is->savepath.$this->savename\\)\\)
      {
      $this->errno = 4;
      return false;
      }

      3 文件上傳解決方案

      為了實現文件的上傳,在

      標記中,必須設置屬性 enctype="multipart/form-data",服務器就會知道上傳文件有表單數據.當文件上傳時,上傳文件將會保存在 windows 的臨時目錄中,通過 php.ini 文件upload_tmp_dir 設置,在默認情況下,該目錄是 web服務器上的臨時目錄,腳本執行完畢后,該文件將被刪除.

      method="post">

      align="center" cellpadding="0" cellspacing="0" bordercol-
      or="#008080" id="AutoNumber1" style="border-collapse: col-
      lapse">










      align="center" class="style2"> 文件上傳
      align="center">* 文件上傳地址:
      name="myupfile">
      (大小〈2 M 比較合適)


          value=" 重置 " name="B2">



      客戶端與服務器通信使用超文本傳輸協議,服務器端接收客戶端 POST 方法提交的數據,通過 PHP腳本語言取得文件數組,設置允許上傳的文件類型、文件上傳目錄,然后創建類 upload 的對象,執行構造函數,進行各種檢查,運行文件上傳的程序段以實現文件的上傳,最后釋放對象.

      include_once "upload.class.php";
      if \\($_POST[add]==" 上傳 "\\){
      $fileArr['file'] = $myupfile;
      $fileArr['name'] = $myupfile_name;
      $fileArr['size'] = $myupfile_size;
      $fileArr['type'] = $myupfile_type;
      echo $file;
      echo $file_name;
      $filetypes = array \\('gif','jpg','jpge','png','doc'\\); // 所允許上
      傳的文件類型
      $savepath = "upload/"; // 文件上傳目錄
      $maxsize = 0;
      $overwrite = 0;
      $upload = new upload \\($fileArr, $myupfile_name,
      $savepath, $filetypes, $overwrite, $maxsize\\);
      if \\(!$upload->run\\(\\)\\)
      {
      echo $upload->errmsg\\(\\);
      }
      }
      ?>

      4 結 論

      本文設計的文件上傳類的特點是:可以對文件上傳進行控制,利用類創建的對象及其方法可以獲得全部上傳文件的信息,文件上傳類使用方便;可以定制上傳文件的大小、類型等.本文實現的文件上傳類可以支持多文件上傳、減低開發難度、節省開發時間,有效地實現文件的上傳.

      參考文獻:

      [1] Welling L,Thomson L.PHP 和 MySQL Web 開發[M].北京:清華大學出版社,2009.

      [2] 張恩民.PHP 開發實戰權威指南[M].北京:清華大學出版社,2012.

      [3] 蘇貴斌,馬季骕.使用 JavaBeans 組件實現文件上傳[J].內蒙古師范大學學報,2004\\(4\\):400-403.

      [4] 李 斌.PHP 開發環境下文件上傳的原理與實現[J].電腦開發與應用,2013\\(10\\):30-32.

      綜合排序
      投稿量
      錄用量
      發行量
      教育界

      主管:廣西壯族自治區新聞出版局

      主辦:廣西出版雜志社

      國際:ISSN 1674-9510

      國內:CN 45-1376/G4

      級別:省級期刊

      中國報業

      主管:中國報業協會

      主辦:中國報業協會

      國際:ISSN 1671-0029

      國內:CN 11-4629/G2

      級別:國家級期刊

      中國房地產業

      主管:中華人民共和國住房部和...

      主辦:中國房地產業協會

      國際:ISSN 1002-8536

      國內:CN 11-5936/F

      級別:國家級期刊

      建筑與裝飾

      主管:天津出版傳媒集團有限公司

      主辦:天津科學技術出版社有限...

      國際:ISSN 1009-699X

      國內:CN 12-1450/TS

      級別:省級期刊

      財經界

      主管:國家發展和改革委員會

      主辦:國家信息中心

      國際:ISSN 1009-2781

      國內:CN 11-4098/F

      級別:國家級期刊

      文化月刊

      主管:中華人民共和國文化部

      主辦:中國文化傳媒集團有限公司

      國際:ISSN 1004-6631

      國內:CN 11-3120/G2

      級別:國家級期刊

      期刊在線投稿系統
      上傳文件
      支持上傳.doc、.docx、.pdf文件
      18年國內外學術服務,發表國際文獻請認準藏刊網官網

      資深編輯團隊

      專業設計投入方案

      投稿成功率極高

      企業信譽保障

      對公交易更安全

      人民群眾口碑好

      高效投稿流程

      審稿快!出刊快!檢索快!

      正規刊物承諾

      無假刊!無套刊!

      投稿成功!

      藏刊網提醒您

      1.稿件將進入人工審稿階段,審稿后會有編輯聯系您,請保持手機暢通。

      2.為避免一稿多投、重刊等現象影響您的發表,請勿再投他刊。

      確定

      投稿失??!

      藏刊網提醒您

      由于網絡問題,提交數據出現錯誤,請返回免費投稿頁面重新投稿,謝謝!

      確定

      藏刊網收錄400余種期刊,15年誠信發表服務。

      發表職稱文章,覆蓋教育期刊、醫學期刊、經濟期刊、管理期刊、文學期刊等主流學術期刊。

        投稿郵箱:cangkan@163.com

      本站少量資源屬于網絡共享如有侵權請您聯系我們,將在第一時間刪除。

      版權 2009-2022 版權所有:河北藏刊文化發展有限公司 工信部備案:ICP備20016223號 冀公網安備13010502002858號

      人妻偷人精品免费视频|热区欧美精品亚洲高清区|亚洲国产精品狼友在线观看|久久精品视香蕉蕉|国产免费第一区二区三区