一、上傳圖片流程
圖片上傳是很常見的功能,該功能需要以下幾步來完成 :
1、用戶在表單中選擇需要上傳的圖片。
2、提交表單之後,後台服務器接收到圖片的相關信息,包括圖片的名稱、大小、類型和臨時文件名等。
3、後台服務器對該圖片進行驗證,如檢查類型和大小是否符合要求。
4、如果驗證通過,就將圖片移動到服務器上的指定位置,並返回上傳成功的提示信息。
二、實現上傳圖片的關鍵代碼
以下是一個簡單的php代碼,可以實現圖片上傳功能。
<?php
$target_dir = "uploads/"; //圖片存儲路徑
$target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]); //存儲文件名
$uploadOk = 1;
$imageFileType = strtolower(pathinfo($target_file,PATHINFO_EXTENSION)); //圖片類型
// 檢查是否真的是圖片類型
if(isset($_POST["submit"])) {
$check = getimagesize($_FILES["fileToUpload"]["tmp_name"]);
if($check !== false) {
echo "File is an image - " . $check["mime"] . ".";
$uploadOk = 1;
} else {
echo "File is not an image.";
$uploadOk = 0;
}
}
// 檢查圖片是否已存在
if (file_exists($target_file)) {
echo "Sorry, file already exists.";
$uploadOk = 0;
}
//檢查圖片大小
if ($_FILES["fileToUpload"]["size"] > 500000) {
echo "Sorry, your file is too large.";
$uploadOk = 0;
}
//僅允許特定類型的圖片上傳
if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg"
&& $imageFileType != "gif" ) {
echo "Sorry, only JPG, JPEG, PNG & GIF files are allowed.";
$uploadOk = 0;
}
// 檢查是否有錯誤發生
if ($uploadOk == 0) {
echo "Sorry, your file was not uploaded.";
// 如果一切都Ok,則嘗試將文件上傳到服務器
} else {
if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) {
echo "The file ". basename( $_FILES["fileToUpload"]["name"]). " has been uploaded.";
} else {
echo "Sorry, there was an error uploading your file.";
}
}
?>
三、經驗和注意事項:
為了確保圖片上傳功能的正確性和穩定性,需要注意以下幾點:
1、限制上傳圖片的類型和大小。
2、對上傳的文件進行驗證,確保它們是真實的圖片文件。
3、將上傳的圖片轉移到一個安全的位置,並為此配置適當的權限。
4、在上傳圖片時對上傳進度和上傳結果進行日誌記錄。
以上幾點可以有效地防止用戶通過上傳圖片的功能對系統進行惡意攻擊。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/272044.html
微信掃一掃
支付寶掃一掃