php怎麼實作上傳檔案並替換

藏色散人
發布: 2023-03-08 09:40:01
原創
2745 人瀏覽過

php實作上傳文件並取代的方法:先建立兩個文件,分別是「change.html」和「change.php」;然後用「strrchar()」處理文件;接著呼叫判斷文件類型的函數,並將其轉化為小寫;最後實現上傳並替換文件即可。

php怎麼實作上傳檔案並替換

本文操作環境:windows7系統、PHP7.1版,DELL G3電腦

php如何實作上傳圖片文件,並替換

先建立兩個檔案: change.html 和change.php

change.html 檔案的表單程式碼如下:

  change file example.  
  
文件:
登入後複製

這裡有幾個要注意的地方,先看這句話

,這裡我們採用POST方法,個別瀏覽器也支援PUT方法,當然這需要對腳本進行修改,我並不建議這麼做。表單中必須設定enctype="multipart/form-data,這樣,伺服器就知道上傳檔案帶有常規表單信息,記住,這個是必須設定的。此外還需要一個隱藏域來限制上傳檔案的最大長度:< ;input type="hidden" name="MAX_FILE_SIZE" value="2000000">,這裡name必須設定成MAX_FILE_SIZE,其值就是上傳檔案的最大長度,單位是B,這裡我限製成2M。再看這句: ,type="file"說明了文件類型,這樣一個基本的上傳文件介面就完成了,接下來講講如何用PHP來處理上傳的文件,此外你的php.ini中設定的上傳文件最大長度可能會影響到你的實際上傳,請根據實際情況修改,另PHP的上傳是先傳到臨時目錄,在移至指定目錄的,了;臨時目錄的可依需求修改,也可使用預設值…

【推薦學習:《PHP影片教學》】

以下為表單提交change.php檔碼,來看看這個檔案都有什麼:

您的文件已经上传完毕 上传图片预览: 
"; } }else{ echo "
上传失败,文件大于2M,请重新上传!
"; } }else{ $text = implode(",", $type); echo "
您只能上传以下类型文件:", $text, "

"; // echo ""; } } changeFile("./files/1.png");
登入後複製

剛看這些你可能有點暈~~,慢慢看,你就會發現其實這玩意SO EASY!!先講下原理,程式以上傳圖片為例,先判斷文件類型是否為圖片格式,若是則上傳文件,接著上傳文件到並替換指定文件,成功上傳則輸出上傳的圖片預覽。這裡要對程式中一些函數做些解釋。先看substr(strrchr($newfile, '.'), 1), strrchar()函數有什麼作用呢,我舉個例子大家就知道,比如一個圖片檔案pic.jpg,我們用strrchar( )處理,strrchr(pic.jpg,'.'),它將返回.jpg,明白了嗎?該函數返回指定字元在該字串最後出現的位置後的字串。配合substr() 我們就可以取到jpg,這樣我們就得到了檔案的後綴名,來判斷上傳檔案是否符合指定格式。本程式把指定的格式放在一個陣列中,實際使用時可依需求新增。

接著,我們呼叫判斷檔案類型的函數,並將其轉換為小寫strtolower($_FILES['file']['name']),這裡有個很關鍵的東東$_FILES ,這是個超級全域數組,保存了需要處理的表單數據,如果開啟了register_globals,也可以直接訪問,但這是不安全的。看剛才那個上傳介面,根據這個表單名稱,我們可以得到很多資訊:

$_FILES['file']['name'] -- 得到檔案名稱

$_FILES['file']['tmp_name']--得到暫存位置

$_FILES['file']['size']--得到文件大小

$_FILES['file']['type']--得到文件MIME類型

得到這些信息,就可以輕鬆判斷文件的信息了,是不是很方便?接下來還有一些函數要了解,file_exists()--判斷指定目錄是否存在,不存在我們當然不能上傳(好像是廢話!),is_uploaded_file--判斷檔案是否已經透過HTTP POST上傳,move_uploaded_file--將上傳檔案移至指定目錄。成功上傳,我們就輸出預覽,否則輸出上傳失敗…

以上是php怎麼實作上傳檔案並替換的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
php
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!