消息:未定义的索引:更新图像时的图像 PHP

Message: Undefined index: image on updating image PHP

我想更新我的图片,但我想如果我不更新任何图片,那么之前的图片不应该被删除 但是现在,如果我没有传递 "image" 参数,那么我会收到以下错误 "Message: Undefined index: image",我只想如果我不传递 "image" 参数,那么错误不应该显示, 我该如何解决这个错误? 这是我的代码

if (!file_exists($_FILES['image']['tmp_name']) || !is_uploaded_file($_FILES['image']['tmp_name'])) {
} else {
    $filename = time() . uniqid(rand()) . $_FILES['image']['name'];
    move_uploaded_file($_FILES["image"]["tmp_name"], "vendorProfile/" . $filename);
    $saveArr['image'] = $filename;
}

在没有图像上传的情况下使用 file_exists($_FILES['image']['tmp_name'] 会导致 undefined index 错误,因为您假设此时 $_FILES['image'] 确实存在,因此您应该首先测试是否 image 存在于 $_FILES 数组中 - 例如使用 isset。我不打算将此作为答案,因为我觉得评论应该已经足够了,但也许它会有所帮助。

if( isset( $_FILES['image'] ) ){
    /* an image was uploaded */
    $obj=(object)$_FILES['image'];
    $tmp=$obj->tmp_name;
    $name=$obj->name;

    if( is_uploaded_file( $tmp ) ){
        $filename = time() . uniqid( rand() ) . $name;
        move_uploaded_file( $tmp, "vendorProfile/{$filename}" );
        $saveArr['image'] = $filename;  
    }

} else {
    /* no image uploaded - do something else */

}

亲爱的 Jigar,根据您给出的解释,我可以理解您正在尝试将文件上传到某处,如果您没有选择该文件,则会收到未定义的索引错误消息。

根据您的代码,您首先尝试使用以下代码行检查文件是否存在:

(!file_exists($_FILES['image']['tmp_name']) || !is_uploaded_file($_FILES['image']['tmp_name'])) {
        }

并且您正在尝试使用 else 块上传

我认为你应该先

  1. 定义空数组以在其中保存图像元素。

    $saveArr[] = '';
    
  2. 在 if 块而不是 else 中进行上传。 在此处输入代码

    if(!file_exists($_FILES['image']['tmp_name']) || 
     !is_uploaded_file($_FILES['image']['tmp_name'])){ 
    
     $filename = time() . uniqid(rand()) . $_FILES['image']['name'];
     move_uploaded_file($_FILES["image"]["tmp_name"], "vendorProfile/" . $filename);
     $saveArr['image'] = $filename;}