我有一个项目,其中应将带有图像删除选项的多张图像上传到网页。
因此,当我使用带有图像名称的输入上传图像并删除一些上传的图像时,显而易见的是,移除的图像不会从输入中移除,并且当我提交表单时,所有图像都将插入数据库中,甚至移除的图像.. < / p>
现在,当我从网页上删除图像时,我会在表单内添加一个名称为deletedImg[]
的隐藏输入:此输入将具有已删除图像的索引(例如,首先删除图像,然后输入名称为deletedImg[]
的值为0,第二张图像被删除,然后另一个名称为deleteImg []的输入的值为1 ..依此类推)
这些值是已删除图像的索引,在提交表单时上载图像时,我想忽略它们。如何实现此目的?
if(isset($_POST['post']))
{
$deleted = $_POST['deletedImg']; //This is the array containing the deleted image indexes
foreach($_FILES['images']['name'] as $key=>$val)
{
$nameOfImage = basename($_FILES['images']['name'][$key]);
$avatarTempName = $_FILES['images']['tmp_name'][$key];
// List of allowed image extensions
$avatarAllowedExtension = array("jpeg", "jpg", "png", "gif");
// Get avatar extension
$avatarExtension = strtolower(end(explode('.', $nameOfImage)));
if(in_array($avatarExtension, $avatarAllowedExtension))
{
$postImage = rand(0, 10000000000) . '_' . $nameOfImage;
// Move image into Covers folder
move_uploaded_file($avatarTempName, "Uploads\Posts\\" . $postImage);
// Insert image into database
$stmt = $con->prepare("insert into postImages (ID , userId , postID , postImg) values (DEFAULT , :userId, (select max(ID)from post) , :postImg)");
$stmt-> execute(array(
'userId' => $_SESSION['ID'],
'postImg' => $postImage
));
}
}
}
答案 0 :(得分:0)
要获取此数组的值,可以使用以下代码:
$deleted = array_values($_POST['deletedImg']);
然后,您可以使用in_array($val, $deleted)
来检查已删除的数组中是否存在已发布的映像名称之一。