您好,登錄后才能下訂單哦!
今天小編就為大家?guī)硪黄嘘P(guān)php封裝上傳函數(shù)的文章。小編覺得挺實(shí)用的,為此分享給大家做個(gè)參考。一起跟隨小編過來看看吧。
php上傳函數(shù)怎么封裝?
<?php //上傳文件調(diào)用 $file = $_FILES['image']; //允許上傳的類型 $allow = array('image/jpeg', 'image/png', 'image/jpg', 'image/gif'); $path = './uploads'; $maxsize = 1024 * 1024 * 3; $result = upload($file, $allow, $error, $path, $maxsize); if ($result) { //上傳成功 echo "文件上傳成功,新的文件名叫".$result; }else{ //上傳失敗 echo $error; } /** *文件的上傳 *@param array $file 上傳的文件的相關(guān)信息(是一個(gè)數(shù)組有五個(gè)元素) *@param array $allow 允許文件上傳的類型 *@param string & $error 引用傳遞,用來記錄錯(cuò)誤的信息 *@param string $path 文件上傳的目錄,不帶最后的 / *@param int $maxsize = 1024*1024 允許上傳的文件大小 *@return mixed false | $newname 如果上傳失敗返回false,成功返回文件的新名字 **/ function upload($file, $allow, &$error, $path, $maxsize =1048576){ //先判斷系統(tǒng)錯(cuò)誤 switch ($file['error']) { case 1: $error = '上傳錯(cuò)誤,超出了服務(wù)器文件限制的大小!'; return false; case 2: $error = '上傳錯(cuò)誤,超出了瀏覽器表單允許的大小!'; return false; case 3: $error = '上傳錯(cuò)誤,文件上傳不完整!'; return false; case 4: $error = '上傳錯(cuò)誤,請您先選擇要上傳的文件!'; return false; case 6: case 7: $error = '對不起,服務(wù)器繁忙,請稍后再試!'; return false; } //判斷邏輯錯(cuò)誤 //驗(yàn)證文件的大小 if ($file['size'] > $maxsize) { //超出用戶了自己規(guī)定的大小 $error = '上傳錯(cuò)誤,超出了文件限制的大??!'; return false; } //判斷文件的類型 if (!in_array($file['type'], $allow)) { //非法的文件類型 $error = '上傳的文件的類型不正確,允許的類型有:'.implode(',', $allow); return false; } //移動(dòng)臨時(shí)文件 //指定文件上傳后保存的路徑 $newname = randName($file['name']); //得到文件新的名字 //判斷$path 目錄是否存在 不存在則創(chuàng)建 if (!file_exists($path)) { mkdir($path, 0777, true); } $target = $path . '/' . $newname; $result = move_uploaded_file($file['tmp_name'], $target); if ($result) { //上傳成功 return $newname; }else{ //上傳失敗 $error = '發(fā)生未知錯(cuò)誤,上傳失敗'; return false; } } /** *生成一個(gè)隨機(jī)名字的函數(shù) 文件名=當(dāng)前的時(shí)間 + 隨機(jī)的幾位數(shù)字 *@param string $filename 文件的原始名字 *@return string $newname 文件的新名字 * */ function randName($filename){ //生成文件名的時(shí)間部分 $newname = date('YmdHis'); //加上隨機(jī)的6位數(shù) $str = '0123456789'; for ($i=0; $i < 6; $i++) { $newname .= $str[mt_rand(0, strlen($str)-1)]; } //加上文件的后綴名 $newname .= strrchr($filename, '.'); return $newname; }
HTML上傳代碼
<!DOCTYPE html> <html> <head> <title>文件上傳</title> <meta charset="utf-8"> </head> <body> <form method="post" action="upload.php" enctype="multipart/form-data"> <input type="file" name="image"> <input type="submit" name="" value="上傳"> </form> </body> </html>
以上就是php封裝上傳函數(shù)的具體操作,代碼詳細(xì)清楚,如果在日常工作遇到這個(gè)問題,希望你能通過這篇文章解決問題。如果想了解更多相關(guān)內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。