本篇文章給大家帶來的內容是關於php和html結合實現上傳圖片檔案到伺服器的代碼,有一定的參考價值,有需要的朋友可以參考一下,希望對你有所協助。
一.html代碼
<body><form action="" method="post" enctype="multipart/form-data" name="upload_form"> <label>選擇圖片檔案</label> <input name="imgfile" type="file" accept="image/gif, image/jpeg"/> <input name="upload" type="submit" value="上傳" /></form></body>
二.php代碼
if (isset($_FILES['imgfile']) && is_uploaded_file($_FILES['imgfile']['tmp_name'])){ $imgFile = $_FILES['imgfile'];$upErr = $imgFile['error'];if ($upErr == 0){$imgType = $imgFile['type']; //檔案類型。/* 判斷檔案類型,這個例子裡僅支援jpg和gif類型的圖片檔案。*/if ($imgType == 'image/jpeg'|| $imgType == 'image/gif'){$imgFileName = $imgFile['name'];$imgSize = $imgFile['size'];$imgTmpFile = $imgFile['tmp_name'];/* 將檔案從臨時檔案夾移到上傳檔案夾中。注意:upfile這個檔案夾必須先建立好,不然會報錯。*/move_uploaded_file($imgTmpFile, 'upfile/'.$imgFileName);/*顯示上傳後的檔案的資訊。*/$strPrompt = sprintf("檔案%s上傳成功<br>". "檔案大小: %s位元組<br>". "<img src='upfile/%s'>", $imgFileName, $imgSize, $imgFileName);echo $strPrompt;}else{echo "請選擇jpg或gif檔案,不支援其它類型的檔案。";}}else{echo "檔案上傳失敗。<br>";switch ($upErr){case 1: echo "超過了php.ini中設定的上傳檔案大小。";break;case 2: echo "超過了MAX_FILE_SIZE選項指定的檔案大小。";break;case 3: echo "檔案只有部分被上傳。";break;case 4: echo "檔案未被上傳。";break;case 5: echo "上傳檔案大小為0";break;}}}else{}
三.php程式碼分析:
$_FILES是一個陣列變數,用於儲存上傳後的檔案資訊。
$_FILES['imgfile']表示檔案網域名稱稱為'imgfile'的控制項提交伺服器後,上傳的檔案的資訊。
一個上傳的檔案,有以下屬性資訊:
'name': 上傳的檔案在用戶端的名稱。
'type': 檔案的 MIME 類型,例如"image/jpeg"。
'size': 已上傳檔案的大小,單位為位元組。
'tmp_name':上傳時,在伺服器端,會把上傳的檔案儲存到一個臨時檔案夾中,可以通過此屬性得到臨時檔案名稱。
'error':檔案在上傳過程中的錯誤碼。如果上傳成功,此值為0,其它值的意義如下:
1:超過了php.ini中設定的上傳檔案大小。
2:超過了MAX_FILE_SIZE選項指定的檔案大小。
3:檔案只有部分被上傳。
4:檔案未被上傳。
5:上傳檔案大小為0。
代碼中首先判斷$_FILES['imgfile']變數是否存在,如果存在,並且$_FILES['imgfile']['tmp_name']變數所指檔案被上傳了,判斷error屬性,如果屬性為0,把上傳後的映像從臨時檔案夾移到upfile檔案夾中,顯示上傳檔案的資訊,並顯示上傳後的映像。
如果error值不為0,表示上傳失敗,顯示失敗資訊。
四.完整代碼
<!DOCTYPE html ><html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>上傳圖片檔案</title></head><?phpif (isset($_FILES['imgfile']) && is_uploaded_file($_FILES['imgfile']['tmp_name'])){ $imgFile = $_FILES['imgfile'];$upErr = $imgFile['error'];if ($upErr == 0){$imgType = $imgFile['type']; //檔案類型。/* 判斷檔案類型,這個例子裡僅支援jpg和gif類型的圖片檔案。*/if ($imgType == 'image/jpeg'|| $imgType == 'image/gif'){$imgFileName = $imgFile['name'];$imgSize = $imgFile['size'];$imgTmpFile = $imgFile['tmp_name'];/* 將檔案從臨時檔案夾移到上傳檔案夾中。*/move_uploaded_file($imgTmpFile, 'upfile/'.$imgFileName);/*顯示上傳後的檔案的資訊。*/$strPrompt = sprintf("檔案%s上傳成功<br>". "檔案大小: %s位元組<br>". "<img src='upfile/%s'>", $imgFileName, $imgSize, $imgFileName);echo $strPrompt;}else{echo "請選擇jpg或gif檔案,不支援其它類型的檔案。";}}else{echo "檔案上傳失敗。<br>";switch ($upErr){case 1: echo "超過了php.ini中設定的上傳檔案大小。";break;case 2: echo "超過了MAX_FILE_SIZE選項指定的檔案大小。";break;case 3: echo "檔案只有部分被上傳。";break;case 4: echo "檔案未被上傳。";break;case 5: echo "上傳檔案大小為0";break;}}}else{/*顯示表單。*/?><body><form action="" method="post" enctype="multipart/form-data" name="upload_form"> <label>選擇圖片檔案</label> <input name="imgfile" type="file" accept="image/gif, image/jpeg"/> <input name="upload" type="submit" value="上傳" /></form></body><?php}?></html>