<?php /* * 文件上傳: * 一、如何控制上傳文件 * 二、對上傳文件判斷(格式、大小) * 三、學習執行文件上傳操做方法 * $_FILES 數組元素 * $_FILES[filename][name]:存儲上傳的文件名 * $_FILES[filename][size]:存儲上傳的文件大小,單位爲字節 * $_FILES[filename][tmp_name]:存儲文件在臨時目錄中使用的文件名 * $_FILES[filename][type]:存儲上傳文件的MIME類型,類型由"/"分隔 * $_FILES[filename][error]:存儲與文件上傳相關的錯誤代碼 * 0:上傳成功 * 1:上傳文件的大小超出了PHP配置 * 2:表示上傳文件大小超出了表單中MAX_FILE_SIZE選項所指定的值 * 3:表示文件只被上傳了一部份 * 4:表示沒有上載任何文件 * / if(!empty($_FILES['up_picture']['name'])){ //判斷上傳內容是否爲空 if($_FILES['up_picture']['error']>0){ //判斷文件是否能夠上傳到服務器 echo "上傳錯誤:"; switch ($_FILES['up_picture']['error']){ case 1: echo "上傳文件大小超出配置文件規定值"; break; case 2: echo "上傳文件大小超出表單中約定的值"; break; case 3: echo "上傳文件不全"; break; case 4: echo "沒有上傳文件"; break; } }else{ list($maintype,$subtype)=explode("/", $_FILES['up_picture']['type']);//獲取上傳文件類型 if($maintype!="p_w_picpath"||$subtype!="pjpeg"){ //判斷上傳文件格式是否正確 echo "上傳文件格式不正確"; }else{ if(!is_dir("upfile")){ //判斷指定目錄是否存在 mkdir("upfile"); //建立目錄 } $path = "upfile/".time().strtolower(strstr($_FILES['up_picture']['name'], "."));//動態建立生成文件路徑 if(is_uploaded_file($_FILES['up_picture']['tmp_name'])){//判斷文件是否能夠上傳 if(move_uploaded_file($_FILES['up_picture']['tmp_name'], $path)){ //若是上傳成功 echo "文件:<span class='STYLE1'>".time().strtolower(strstr($_FILES['up_picture']['name'], ".")) ."</span> 上傳成功,大小爲:<span class='STYLE1'>".$_FILES['up_picture']['size']."</span>字節"; }else{ echo "上傳失敗"; } }else{ echo "上傳文件:<span class='STYLE1'>".$_FILES['up_picture']['name']."</span>不合法!"; } } } } ?> <form action="06.php" method="post" enctype="multipart/form-data"> <input type="hidden" name="MAX_FILE_SIZE" value="100000" /> <input type="file" name="up_picture"> <input type="submit" value="上傳"/> </form>