以下是我的代碼,它可以正常工作,但是如何在圖像名稱已經存在時在圖像名稱中添加「_copy」,然後將其上傳到「藝術品」目錄並插入更新「藝術作品」表中的名稱更改圖像名稱,如果已經存在,然後上傳到數據庫和目錄
$targeta = "artworks/";
$targeta = $targeta . basename($_FILES['image']['name']);
$pic=($_FILES['image']['name']);
if(move_uploaded_file($_FILES['image']['tmp_name'], $targeta)){
echo "Image uploaded";
}
else {
echo "Image name already exist";
}
$results = $db->query("INSERT INTO Artworks (`Image`) VALUES ('$pic');");
if($results){
echo "New row inserted";
}
在將prrfix添加到文件名之前,先用'file_exists'和'!is_dir'進行檢查。 – frz3993
_NEVER_ trust'$ _FILES ['image'] ['name']'以任何方式。將它存儲在數據庫中,但是使用從數據庫返回的_id_作爲文件系統上的實際密鑰(並且如果要將它們存儲在Web可訪問的位置中,則添加一個隨機密鑰)。 – MatsLindh
當你將'$ pic'插入數據庫時,你並沒有逃避'$ pic'的價值,所以你很容易受到SQL注入攻擊(即不信任上傳文件的'name') – MatsLindh