您好,登錄后才能下訂單哦!
小編給大家分享一下PHP中上傳文件的示例分析,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
具體如下:
Demo1.php
<form enctype="multipart/form-data" action="Demo2.php" method="post"> <input type="hidden" name="MAX_FILE_SIZE" value="2000000" /> 上傳文件: <input type="file" name="userfile" /> <input type="submit" value="上傳" /> </form>
Demo2.php
<?php //接受上傳文件 //$_FILES; //存在,但是空值 //[userfile][name] 表示上傳的文件名 //[userfile][type] 表示文件類型:例如,jpg 的文件類型為:image/jpeg //[userfile][tmp_name]表示上傳的文件臨時存放的位置 C:\WINDOWS\temp\php28.tmp //[userfile][error]表示錯誤類型,表示沒有任何錯誤。 //[userfile][size]表示上傳文件的大小 print_r($_FILES); echo '<br/>'; //is_uploaded_file -- 判斷文件是否是通過 HTTP POST 上傳的 //通過 HTTP POST 上傳后,文件會存放在臨時文件夾下 $fileMimes = array('image/jpeg','image/pjpeg','image/gif','image/png','image/x-png'); //判斷類型是否是數組里的一種 if(is_array($fileMimes)){ if(!in_array($_FILES['userfile']['type'],$fileMimes)){ echo "<script>alert('本站只允許 jpg,png,gif 圖片');history.back();</script>"; exit; } } //創建一個常量 define('URL',dirname(__FILE__).'\uploads'); echo URL; //判斷目錄是否存在 if(!is_dir(URL)){ mkdir(URL,0777); //最大權限0777,意思是如果沒有這個目錄,那么就創建 } define('MAX_SIZE',2000000); if($_FILES['userfile']['size'] > MAX_SIZE){ echo "<script>alert('上傳不得超過 2 M');history.back();</script>"; exit; } //還有兩個問題要驗證 //第二個問題,只允許 JPG 文件 // if($_FILES['userfile']['type'] != 'image/jpeg' && $_FILES['userfile']['type'] != 'image/pjpeg'){ // echo "<script>alert('本站只允許 JPG 圖片');history.back();</script>"; // exit ; // } // switch ($_FILES['userfile']['type']){ // case 'image/jpeg'://火狐 // break; // case 'image/pjpeg': // break; // case 'image/gif': // break; // case 'image/png'://火狐 // break; // case 'image/x-png'://IE // break; // default: echo "<script>alert('本站只允許 jpg,png,gif 圖片');history.back();</script>"; // exit ; // } //第一個問題,如果上傳錯誤,怎么辦 if($_FILES['userfile']['error']>0){ switch ($_FILES['userfile']['error']){ case 1:echo "<script>alert('上傳文件超過約定值1');history.back();</script>"; break; case 2:echo "<script>alert('上傳文件超過約定值2');history.back();</script>"; break; case 3:echo "<script>alert('部分被上傳');history.back();</script>"; break; case 4:echo "<script>alert('沒有被上傳');history.back();</script>"; break; } exit; } if(is_uploaded_file($_FILES['userfile']['tmp_name'])){ //就在這里移動了 //move_uploaded_file -- 將上傳的文件移動到新位置 //第一個參數,寫上臨時文件的地址, //第二個參數,第二個參數要寫上你要存在的地址 //先去判斷這個目錄是否存在 //如果想屏蔽掉警告,直接加上 @ if(!move_uploaded_file($_FILES['userfile']['tmp_name'],URL.'/'.$_FILES['userfile']['name'])){ //如果移動失敗,就失敗 echo '移動失敗'; exit; } }else{ echo "<script>alert('臨時文件夾找不到上傳的文件');history.back();</script>"; exit; } //全部通過就上傳成功了 //必須傳一個值給Demo3.php //文件上傳的地址 echo "<script>alert('文件上傳成功');location.href='Demo3.php?url=".$_FILES['userfile']['name']."';</script>"; ?>
Demo3.php
<?php $url = $_GET['url']; echo "<img src=\"uploads/".$url."\"/>"; ?>
以上是“PHP中上傳文件的示例分析”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。