PHP crea una carpeta si no existe

Estoy creando una aplicación de tamaño medio.

Esta aplicación consta de una gran cantidad de productos.

Ahora estos productos tienen muchas imágenes (un producto puede tener de 5 a 6 imágenes)

Para intentar y hacer algún tipo de pedido, quiero crear una carpeta para cada producto; esta carpeta contiene todas las imágenes que están vinculadas al producto.

Ahora hasta ahora he intentado lo siguiente:

move_uploaded_file($file, APP.'product_images/'.$product_id.'/'.$image['name']);

Sin embargo cuando intento esto me sale el siguiente error:

Warning (2): move_uploaded_file(/var/www/udlejnings-priser/cake/app/product_images/22/afterClick.png): failed to open stream: No such file or directory [APP/Controller/ImagesController.php, line 56]

Warning (2): move_uploaded_file() [function.move-uploaded-file]: Unable to move '/tmp/php472ci6' to '/var/www/udlejnings-priser/cake/app/product_images/22/afterClick.png' [APP/Controller/ImagesController.php, line 56]

Ahora no soy un noob completo y sé que esto significa que me faltan permisos a la carpeta.

Sin embargo, el problema es que si la carpeta no existe (es decir, esta es la primera vez que se carga una imagen para ese producto), se debe crear una nueva carpeta.

Mi pregunta es dos partes separadas.

¿Crea esto automáticamente una nueva carpeta si no existe ya?¿Cómo puedo dar permiso a una carpeta recién creada para evitar este problema?

Respuestas a la pregunta(4)

Su respuesta a la pregunta