<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                ~~~ <?php /** * 上傳工具類,單文件直接實列化請求UploadFile,多文件請求uploadMulti * 同時提供了一些對外界修改參數的函數 */ class Upload { private $_error; // 存儲當前錯誤信息 private $_upload_path; // 上傳目錄 private $_prefix; // 前綴 private $_max_size; // 最大size private $_ext_list; // 允許的后綴列表 private $_mime_list; // 允許的MIME列表 private $_ext_mime = array( // 圖片對應的MIME表 '.jpeg' => 'image/jpeg', '.jpg' => 'image/jpeg', '.png' => 'image/png', '.gif' => 'image/gif' ); public function __construct() { // 為選項指定默認值 $this->_error = array(); $this->_upload_path = './'; $this->_prefix = ''; $this->_max_size = 5 * 1024 * 1024; $this->_ext_list = array('.jpg', '.gif', '.png', '.jpeg'); $this->_setMIMEList($this->_ext_list); } /** * 通過允許的后綴列表獲得相對應允許的MIME列表 * @param string $ext_list 允許的后綴列表 * @return void 賦值到 MIME列表屬性上 */ private function _setMIMEList($ext_list) { $mime_list = array(); // 遍歷獲得每一個后綴名 foreach($ext_list as $ext) { // 利用當前后綴名,獲取對應的MIME,存儲到MIME列表中! $mime_list[] = $this->_ext_mime[$ext]; } // 賦值到 MIME列表屬性上! $this->_mime_list = $mime_list; } //下面的提供修改這些配置屬性的方法:setUploadPath setPrefix setMaxSize setExtList /** * 提供修改路徑的方法 * @access public * @param string $upload 目錄字符串 默認'./' * @return void 目錄不存在采用默認,存在采用傳入的參數 */ public function setUploadPath($upload_path) { // 不允許將不存在的目錄設置為上傳目錄 if (is_dir($upload_path)) { $this->_upload_path = $upload_path; } else { trigger_error('上傳目錄設置失敗,采用默認'); } } /** * 提供修改前綴的方法 * @access public * @param string $prefix 默認'' * @return void 把傳入的前綴保存到_prefix */ public function setPrefix($prefix) { $this->_prefix = $prefix; } /** * 提供修改最大大小的方法 * @access public * @param int $max_size 最大大小 默認1*1024*1024 * @return void 將傳入的尺寸保存到_max_size */ public function setMaxSize($max_size) { $this->_max_size = $max_size; } /** * 提供修改允許的后綴名列表 * @param array $ext_list 后綴名組成的數組,默認array('.jpg', '.gif', '.png', '.jpeg'); * @return void 將傳入的數組保存到_ext_list,并調用_setMIMEList方法生成對應的MIME類型 */ public function setExtList($ext_list) { $this->_ext_list = $ext_list; $this->_setMIMEList($ext_list); } /** * 文件上傳(業務邏輯判斷)函數 * 一次上傳(判斷)一個文件 * @param array $file_info 某個臨時上傳文件的5個信息,由$_FILES中獲得! * @return string:成功,目標文件名;false: 失敗 */ public function uploadFile($file_info) { // 判斷是否有錯誤 if ($file_info['error'] != 0) { $this->_error[] = '上傳文件存在錯誤'; return false; } // 判斷文件類型 // 后綴名 $ext_list = $this->_ext_list; // 允許的后綴名列表 $ext = strrchr($file_info['name'], '.'); if (! in_array($ext, $ext_list)) { $this->_error[] = '類型,后綴不合法'; return false; } // MIME $mime_list = $this->_mime_list; // 允許的mime列表! if (! in_array($file_info['type'], $mime_list)) { $this->_error[] = '類型,MIME不合法'; return false; } // PHP檢測MIME $finfo = new Finfo(FILEINFO_MIME_TYPE); $mime_type = $finfo->file($file_info['tmp_name']); if (! in_array($mime_type, $mime_list)) { $this->_error[] = '類型,PHP檢測MIME不合法'; return false; } // 判斷大小 $max_size = $this->_max_size; // 允許的最大尺寸 if ($file_info['size'] > $max_size) { $this->_error[] = '文件過大'; return false; } // 設置目標文件地址 // 上傳目錄 $upload_path = $this->_upload_path; // 采用子目錄存儲 // 獲取當前需要的子目錄名(目錄/小時) $sub_dir = date('YmdH') . '/'; // 當前的年月日時 // 是否存在 if (! is_dir($upload_path . $sub_dir)) { // 不存在,創建 mkdir($upload_path . $sub_dir); } // 目標文件名 $prefix = $this->_prefix;// 前綴 $dst_name = uniqid($prefix, true) . $ext; // 是否為HTTP上傳文件的檢測 if (! is_uploaded_file($file_info['tmp_name'])) { $this->_error = '不是HTTP上傳的臨時文件'; return false; } // 移動! if (move_uploaded_file($file_info['tmp_name'], $upload_path . $sub_dir . $dst_name)) { // 移動成功 return $sub_dir . $dst_name; // 僅僅返回 上傳目錄之后的地址即可! } else { $this->_error = '移動失敗'; return false; } } /** * 獲取錯誤信息 * @access public * @return string 錯誤信息 */ public function getError() { return $this->_error; } //示范多文件上傳處理,name相同的情況 //$arrFile = array(); //$i=0; //foreach($file as $key=>$value){ 二維數組 // foreach($value as $val){ 一維數組 // $arrFile[$i++][$key] = $val; // } // $i = 0; //} //name 取出每個名字 $arr[0~3][name] //type 取出每個類型 $arr[0~3][type] //tmp_name 取出每個上傳的位置 $arr[0~3][tmp_name] //error 取出每個錯誤信息 $arr[0~3][error] //size 取出每個大小 $arr[0~3][size] /** * 上傳文件判斷函數,多文件上傳,name值不同 * @param array $file_list 比如:$_FILES['image'] 二維數組 * @return 返回上傳目錄之后的地址結果 */ function uploadMulti($file_list) { // 遍歷,其中的name元素,得到下標,下面看不懂看177-189 foreach($file_list['name'] as $key=>$v) { //傳進來的$file_list是二維數組 // 利用下標 獲得對應的5個元素值 // $file_info每個文件的信息,$key是0開始的整數 $file_info['name'] = $file_list['name'][$key]; $file_info['type'] = $file_list['type'][$key]; $file_info['tmp_name'] = $file_list['tmp_name'][$key]; $file_info['error'] = $file_list['error'][$key]; $file_info['size'] = $file_list['size'][$key]; // 上傳該文件即可! // 并存儲每個文件的上傳結果,與$key對應! $result_list[$key] = $this->uploadFile($file_info); } // 返回上傳結果 return $result_list; } } ~~~
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看