PHP入門教程之上傳文件實(shí)例詳解
本文實(shí)例講述了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]表示上傳的文件臨時(shí)存放的位置 C:\WINDOWS\temp\php28.tmp //[userfile][error]表示錯(cuò)誤類型,表示沒有任何錯(cuò)誤。 //[userfile][size]表示上傳文件的大小 print_r($_FILES); echo '<br/>'; //is_uploaded_file -- 判斷文件是否是通過 HTTP POST 上傳的 //通過 HTTP POST 上傳后,文件會(huì)存放在臨時(shí)文件夾下 $fileMimes = array('image/jpeg','image/pjpeg','image/gif','image/png','image/x-png'); //判斷類型是否是數(shù)組里的一種 if(is_array($fileMimes)){ if(!in_array($_FILES['userfile']['type'],$fileMimes)){ echo "<script>alert('本站只允許 jpg,png,gif 圖片');history.back();</script>"; exit; } } //創(chuàng)建一個(gè)常量 define('URL',dirname(__FILE__).'\uploads'); echo URL; //判斷目錄是否存在 if(!is_dir(URL)){ mkdir(URL,0777); //最大權(quán)限0777,意思是如果沒有這個(gè)目錄,那么就創(chuàng)建 } define('MAX_SIZE',2000000); if($_FILES['userfile']['size'] > MAX_SIZE){ echo "<script>alert('上傳不得超過 2 M');history.back();</script>"; exit; } //還有兩個(gè)問題要驗(yàn)證 //第二個(gè)問題,只允許 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 ; // } //第一個(gè)問題,如果上傳錯(cuò)誤,怎么辦 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'])){ //就在這里移動(dòng)了 //move_uploaded_file -- 將上傳的文件移動(dòng)到新位置 //第一個(gè)參數(shù),寫上臨時(shí)文件的地址, //第二個(gè)參數(shù),第二個(gè)參數(shù)要寫上你要存在的地址 //先去判斷這個(gè)目錄是否存在 //如果想屏蔽掉警告,直接加上 @ if(!move_uploaded_file($_FILES['userfile']['tmp_name'],URL.'/'.$_FILES['userfile']['name'])){ //如果移動(dòng)失敗,就失敗 echo '移動(dòng)失敗'; exit; } }else{ echo "<script>alert('臨時(shí)文件夾找不到上傳的文件');history.back();</script>"; exit; } //全部通過就上傳成功了 //必須傳一個(gè)值給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."\"/>"; ?>
更多關(guān)于PHP相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《php文件操作總結(jié)》、《PHP數(shù)組(Array)操作技巧大全》、《PHP基本語法入門教程》、《PHP運(yùn)算與運(yùn)算符用法總結(jié)》、《php面向?qū)ο蟪绦蛟O(shè)計(jì)入門教程》、《PHP網(wǎng)絡(luò)編程技巧總結(jié)》、《php字符串(string)用法總結(jié)》、《php+mysql數(shù)據(jù)庫操作入門教程》及《php常見數(shù)據(jù)庫操作技巧匯總》
希望本文所述對(duì)大家PHP程序設(shè)計(jì)有所幫助。
相關(guān)文章
PHP提示Notice: Undefined variable的解決辦法
今天在調(diào)試程序的時(shí)候,很多網(wǎng)上提供的源碼都會(huì)出現(xiàn) Undefined variable錯(cuò)誤,一般情況下php是不需要定義變量的,但如果服務(wù)器什么都報(bào)錯(cuò)的,就會(huì)出現(xiàn)錯(cuò)誤,所以服務(wù)器上都是應(yīng)該屏蔽這種錯(cuò)誤的2012-11-11PHP接口繼承及接口多繼承原理與實(shí)現(xiàn)方法詳解
這篇文章主要介紹了PHP接口繼承及接口多繼承原理與實(shí)現(xiàn)方法,簡(jiǎn)單描述了接口繼承與多接口繼承的概念、原理,并結(jié)合實(shí)例形式給出了php接口繼承的具體實(shí)現(xiàn)與使用等操作技巧,需要的朋友可以參考下2017-10-10php中__destruct與register_shutdown_function執(zhí)行的先后順序問題
這篇文章主要介紹了php中__destruct與register_shutdown_function執(zhí)行的先后順序問題,需要的朋友可以參考下2014-10-10PHP與JavaScript針對(duì)Cookie的讀寫、交互操作方法詳解
這篇文章主要介紹了PHP與JavaScript針對(duì)Cookie的讀寫、交互操作方法,結(jié)合實(shí)例形式分析了php與javascript設(shè)置cookie、php讀取php及js設(shè)置的cookie、js讀取php及js設(shè)置的cookie等相關(guān)操作技巧,需要的朋友可以參考下2017-08-08php實(shí)現(xiàn)encode64編碼類實(shí)例
這篇文章主要介紹了php實(shí)現(xiàn)encode64編碼類,實(shí)例分析了php實(shí)現(xiàn)encode64編碼的技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-03-03php保存任意網(wǎng)絡(luò)圖片到服務(wù)器的方法
這篇文章主要介紹了php保存任意網(wǎng)絡(luò)圖片到服務(wù)器的方法,涉及php通過curl操作遠(yuǎn)程圖片的技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2015-04-04解決dede生成靜態(tài)頁和動(dòng)態(tài)頁轉(zhuǎn)換的一些問題,及火車采集入庫生成動(dòng)態(tài)的辦法
解決dede生成靜態(tài)頁和動(dòng)態(tài)頁轉(zhuǎn)換的一些問題,及火車采集入庫生成動(dòng)態(tài)的辦法...2007-03-03