黄色电影一区二区,韩国少妇自慰A片免费看,精品人妻少妇一级毛片免费蜜桃AV按摩师 ,超碰 香蕉

FuelPHP 文件上傳

fuelphp 文件上傳

 

文件上傳是表單編程中最常用的功能之一。 fuelphp 提供了一個特殊的類, upload 來處理文件的上傳。本章讓我們學習如何使用 upload 類上傳文件。

 

配置

上傳類可以使用單獨的配置文件 fuel/app/config/upload.php 進行配置。重要的配置條目如下:

  • max_size-設置要上傳的文件的最大大小。 "0"表示無限上傳大小
  • ext_whitelist-設置允許的文件擴展名
  • ext_blacklist-設置不允許的文件擴展名
  • type_whitelist-設置允許的文件類型。例如,對于 mime 類型"text/plain"的"text"
  • type_blacklist-設置不允許的文件類型
  • mime_whitelist-設置允許mime 文件類型。例如,"文本/純文本"
  • mime_blacklist-設置不允許的 mime 文件類型
  • prefix-將上傳的文件保存到服務器時在文件名中添加前綴的字符串
  • suffix-將上傳的文件保存到服務器時文件名后綴的字符串
  • extension-要設置的上傳文件的擴展名
  • create_path-是否創(chuàng)建文件路徑,如果不可用
  • overwrite-保存上傳文件時是否覆蓋現(xiàn)有文件
  • auto_rename-保存上傳文件時是否通過添加序列號重命名文件
  • randomize-是否創(chuàng)建一個隨機的 32 個字符的名稱來保存上傳的文件
  •  

    上傳方法

    upload 類提供了處理和保存用戶上傳的文件的選項。每個處理過的文件(保存前)都會在結果數(shù)組中包含以下信息。

  • field-表單字段的名稱
  • name-上傳文件的名稱
  • type-瀏覽器定義的文件類型
  • mimetype-上傳類定義的文件類型
  • file-上傳文件的臨時位置的完全限定名稱
  • filename-上傳文件的文件名
  • extension-上傳文件的擴展名
  • size-上傳的文件大?。ㄒ宰止?jié)為單位)
  • errors-包含錯誤代碼和消息的錯誤數(shù)組
  • error-是否設置數(shù)組錯誤以及上傳失敗的原因(如果上傳失?。?/li>

    一旦文件保存在服務器中,結果數(shù)組也會有以下信息。

  • saved_to-保存上傳文件的完全限定路徑
  • saved_as-保存的文件名
  • errors-更新錯誤數(shù)組
  • 現(xiàn)在,讓我們看看 upload 類的方法。

     

    is_valid

    is_valid 返回 true,如果用戶上傳了任何有效文件。

    // do we have any uploaded files to save? 
    if (upload::is_valid()) { 
       // process  
    } 

     

    獲取文件

    get_files 將所有上傳的文件作為多維數(shù)組返回。如果指定了表單文件輸入的索引/名稱,那么它將僅返回與指定文件輸入相關的上傳文件。

    foreach(upload::get_files() as $file) { 
       // do something with the file info 
    }  
    if ( upload::get_files(0)) { 
       // do something 
    }

     

    get_errors

    get_errors 返回一個錯誤數(shù)組,如果上傳一個或多個文件失敗。如果指定了表單文件輸入名稱的索引/名稱,那么它將僅返回與指定文件輸入相關的錯誤。

    foreach(upload::get_errors() as $file) { 
       // do something with the file info 
    }  
    if (upload::get_errors('myimage')) { 
       // do something 
    } 

     

    過程

    process 是指收集有關上傳文件的信息的實際過程。我們可以使用數(shù)組提供新的自定義配置。如果沒有指定配置,則使用fuel/app/config/upload.php中定義的配置

    upload::process (array( 
       'auto_rename' => false, 
       'overwrite'   => true 
    ));

     

    保存

    save 是指將所有經(jīng)過驗證的文件保存在適當位置的實際過程。我們可以指定索引以僅保存該特定條目。

    upload::save();
    upload::save(0);
    upload::save(0, 3); 

     

    工作示例

    讓我們在員工示例中創(chuàng)建一個新控制器 controller_upload 來測試上傳功能。

    步驟 1-創(chuàng)建一個文件, fuel/app/classes/controller/upload.php。創(chuàng)建上傳控制器。

     
       class controller_upload extends controller { 
       } 

    第 2 步-創(chuàng)建一個新操作 get_upload。

      
       class controller_upload extends controller { 
          public function get_index() { 
             return \view::forge("upload/index"); 
          } 
       } 

    第 3 步-為創(chuàng)建的操作創(chuàng)建一個新視圖。

       
          <form action="/upload/index" method="post" enctype="multipart/form-data"> 
             select image to upload: 
             <input type="file" name="filetoupload" id="filetoupload" /> 
             <input type="submit" value="upload image" name="submit" /> 
          </form>  
          
        
     

    第 4 步-創(chuàng)建一個新的操作 post_action 來處理上傳的文件。

      
       class controller_upload extends controller { 
          public function get_index() { 
             return \view::forge("upload/index"); 
          }  
          public function post_index(){ 
             $config = array( 
                'path' =--> docroot.'files', 
                'randomize' => true, 
                'ext_whitelist' => array('img', 'jpg', 'jpeg', 'gif', 'png'), 
             );  
             upload::process($config);  
             // if there are any valid files 
             
             if (upload::is_valid()) { 
                upload::save(); 
                echo "success"; 
             } else { 
                // and process any errors 
                foreach (upload::get_errors() as $file) { 
                   echo var_dump($file); 
                } 
             } 
          } 
       }      

    最后,通過請求 url 來運行應用程序, http://localhost:8080/upload/index 并嘗試上傳文件。

     

    結果

    下一節(jié):fuelphp ajax

    fuelphp 教程

    相關文章