¿Por qué la carga de imágenes falla la comprobación de is_uploaded_file de php?

Tengo un formulario html que permite la carga de imágenes, pero la imagen cargada ahora falla el chequeo “is_uploaded_file” por algún motivo.

Entonces, ¿por qué la carga falla la verificación is_uploaded_file?

HTML:

PHP:

 // returns false echo is_uploaded_file($file['tmp_name'])?'true':'false'; 

Hice un volcado en la matriz $ file o $ _FILES:

 Array ( [name] => add or remove.jpg [type] => image/jpeg [tmp_name] => E:\\xampp\\tmp\\phpB9CB.tmp [error] => 0 [size] => 71869 ) 

El tamaño del archivo no es demasiado grande y el error fue 0. Entonces, ¿por qué falla la comprobación is_uploaded_file?

Puede ser un problema con Windows, ya que distingue entre mayúsculas y minúsculas y no coincidirá si la ruta es diferente. Intenta usar realpath($file['tmp_name'])

prueba con

 if (is_uploaded_file($_FILES['data[Recipe][image]']['tmp_name'])) 

recuerda $_FILES es una variable PHP superglobal de reserva … así que siempre escribo en mayúscula

Puedes recuperar la ruta correcta del archivo usando

$filename = basename($_FILES['userfile']['name']);

NOTA: ¿por qué usa array en el atributo name ( name = “data [Recipe] [image]” )?

si no hay un motivo específico, entonces siempre se hace un código simple

  

y verificar simplemente

  if (is_uploaded_file($_FILES['RecipeImage']['tmp_name'])) 

Recuerda KISS

Después de haber utilizado la imagen cargada (move_uploaded_file), la función is_uploaded_file siempre devuelve false.