Похоже, что вы используете абсолютный путь в этом каталоге $ this-> в конструкторе, другими словами, он будет обрабатываться как C: \ images \ upload (или любой другой диск, на котором вы запускаете сайт от). Если вы имеете в виду, что это путь типа URI, то вам нужно добавить свой путь к нему:
$this->directory = $_SERVER['DOCUMENT_ROOT'] . '/images/upload/' . $this->prod_id
Вы также можете проверить, что возвращает mkdir (). Это ЛОЖЬ при сбое, после чего вы можете проверить error_get_last()
(PHP> = 5.2), чтобы точно понять, почему это происходит.
} else {
$ret = mkdir($this->directory, 0755, true);
if ($ret === FALSE) {
die("mkdir() failed with: " . error_get_last());
}
}