Hi, actually save function is pretty straightforward in ZenCart -
See '@move_uploaded_file' - @ is error suppression sign, so error info is available only through $php_errormsg global variable during runtime, that's why there is nothing in log files. I'd start from this point not to guess much.
function save() {
global $messageStack;
if (substr($this->destination, -1) != '/') $this->destination .= '/';
if (@move_uploaded_file($this->file['tmp_name'], $this->destination . $this->filename)) {
chmod($this->destination . $this->filename, $this->permissions);
if ($this->message_location == 'direct') {
$messageStack->add_session('header', SUCCESS_FILE_SAVED_SUCCESSFULLY, 'success');
} else {
$messageStack->add_session('upload', SUCCESS_FILE_SAVED_SUCCESSFULLY, 'success');
}
return true;
} else {
if ($this->message_location == 'direct') {
$messageStack->add_session('header', ERROR_FILE_NOT_SAVED, 'error');
} else {
$messageStack->add_session('upload', ERROR_FILE_NOT_SAVED, 'error');
}
return false;
}
}