php和html結合實現上傳圖片檔案到伺服器的代碼

來源:互聯網
上載者:User
本篇文章給大家帶來的內容是關於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>

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.