国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > PHP > 正文

php初學者一款文件上傳代碼

2024-09-04 11:45:04
字體:
來源:轉載
供稿:網友

創建一個文件上傳表單,允許用戶從表單上傳文件是非常有用的,請看下面這個供上傳文件的 html 表單,代碼如下:

  1. <html>  
  2. <body>  
  3. <form action="upload_file.php" method="post"  
  4. enctype="multipart/form-data">  
  5. <label for="file">filename:</label>  
  6. <input type="file" name="file" id="file" />  
  7. <br />  
  8. <input type="submit" name="submit" value="submit" />  
  9. </form>  
  10. </body>  
  11. </html> 

請留意如下有關此表單的信息:

<form> 標簽的 enctype 屬性規定了在提交表單時要使用哪種內容類型,在表單需要二進制數據時,比如文件內容,請使用 "multipart/form-data".

<input> 標簽的 type="file" 屬性規定了應該把輸入作為文件來處理,舉例來說,當在瀏覽器中預覽時,會看到輸入框旁邊有一個瀏覽按鈕.

注釋:允許用戶上傳文件是一個巨大的安全風險,請僅僅允許可信的用戶執行文件上傳操作.

創建上傳腳本 ,"upload_file.php" 文件含有供上傳文件的代碼:

  1. <?php  
  2. if ($_files["file"]["error"] > 0)  
  3. {  
  4. echo "error: " . $_files["file"]["error"] . "<br />";  
  5. //開源代碼Vevb.com 
  6. else  
  7. {  
  8. echo "upload: " . $_files["file"]["name"] . "<br />";  
  9. echo "type: " . $_files["file"]["type"] . "<br />";  
  10. echo "size: " . ($_files["file"]["size"] / 1024) . " kb<br />";  
  11. echo "stored in: " . $_files["file"]["tmp_name"];  
  12. }  
  13. ?> 

通過使用 php 的全局數組 $_files,你可以從客戶計算機向遠程服務器上傳文件.

第一個參數是表單的 input name,第二個下標可以是 "name", "type", "size", "tmp_name" 或 "error",就像這樣:

$_files["file"]["name"] - 被上傳文件的名稱 

$_files["file"]["type"] - 被上傳文件的類型 

$_files["file"]["size"] - 被上傳文件的大小,以字節計 

$_files["file"]["tmp_name"] - 存儲在服務器的文件的臨時副本的名稱 

$_files["file"]["error"] - 由文件上傳導致的錯誤代碼 

這是一種非常簡單文件上傳方式,基于安全方面的考慮,您應當增加有關什么用戶有權上傳文件的限制.

上傳限制:在這個腳本中,我們增加了對文件上傳的限制,用戶只能上傳 .gif 或 .jpeg 文件,文件大小必須小于 20 kb,代碼如下:

  1. <?php  
  2. if ((($_files["file"]["type"] == "image/gif")  
  3. || ($_files["file"]["type"] == "image/jpeg")  
  4. || ($_files["file"]["type"] == "image/pjpeg"))  
  5. && ($_files["file"]["size"] < 20000))  
  6. {  
  7. if ($_files["file"]["error"] > 0)  
  8. {  
  9. echo "error: " . $_files["file"]["error"] . "<br />";  
  10. }  
  11. else  
  12. {  
  13. echo "upload: " . $_files["file"]["name"] . "<br />";  
  14. echo "type: " . $_files["file"]["type"] . "<br />";  
  15. echo "size: " . ($_files["file"]["size"] / 1024) . " kb<br />";  
  16. echo "stored in: " . $_files["file"]["tmp_name"];  
  17. //開源代碼Vevb.com 
  18. }  
  19. else  
  20. {  
  21. echo "invalid file";  
  22. }  
  23. ?> 

注釋:對于 ie,識別 jpg 文件的類型必須是 pjpeg,對于 firefox,必須是 jpeg.

保存被上傳的文件

上面的例子在服務器的 php 臨時文件夾創建了一個被上傳文件的臨時副本,這個臨時的復制文件會在腳本結束時消失,要保存被上傳的文件,我們需要把它拷貝到另外的位置,代碼如下:

  1. <?php  
  2. if ((($_files["file"]["type"] == "image/gif")  
  3. || ($_files["file"]["type"] == "image/jpeg")  
  4. || ($_files["file"]["type"] == "image/pjpeg"))  
  5. && ($_files["file"]["size"] < 20000))  
  6. {  
  7. if ($_files["file"]["error"] > 0)  
  8. {  
  9. echo "return code: " . $_files["file"]["error"] . "<br />";  
  10. }  
  11. else  
  12. {  
  13. echo "upload: " . $_files["file"]["name"] . "<br />";  
  14. echo "type: " . $_files["file"]["type"] . "<br />";  
  15. echo "size: " . ($_files["file"]["size"] / 1024) . " kb<br />";  
  16. echo "temp file: " . $_files["file"]["tmp_name"] . "<br />";  
  17. if (file_exists("upload/" . $_files["file"]["name"]))  
  18. {  
  19. echo $_files["file"]["name"] . " already exists. ";  
  20. }  
  21. else  
  22. {  
  23. move_uploaded_file($_files["file"]["tmp_name"],  
  24. "upload/" . $_files["file"]["name"]);  
  25. echo "stored in: " . "upload/" . $_files["file"]["name"];  
  26. }  
  27. }  
  28. }  
  29. else  
  30. {  
  31. echo "invalid file";  
  32. ?> 

上面的腳本檢測了是否已存在此文件,如果不存在,則把文件拷貝到指定的文件夾.

注釋:這個例子把文件保存到了名為 "upload" 的新文件夾.

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 江川县| 鲁甸县| 平遥县| 库尔勒市| 怀仁县| 巴青县| 临朐县| 耿马| 广宁县| 水富县| 剑河县| 临夏县| 无极县| 石楼县| 万荣县| 明光市| 彭泽县| 沛县| 盐边县| 霞浦县| 姚安县| 江永县| 汾西县| 辽阳县| 辰溪县| 新津县| 勐海县| 洛浦县| 西丰县| 安溪县| 资源县| 潮安县| 郯城县| 蒲江县| 富阳市| 府谷县| 广灵县| 襄樊市| 丁青县| 屯留县| 广宗县|