/** * See if file has been received and uploaded. * * @param Http $adapter * @param string $fileName * * @return array */ private function validateUploadedFile(Http $adapter, $fileName) { $uploadStatus = []; $adapter->receive($fileName); if (!$adapter->isReceived($fileName) && $adapter->isUploaded($fileName)) { $uploadStatus['errorFiles'][] = $fileName . ' was not uploaded'; } else { $uploadStatus['successFiles'][] = $fileName . ' was successfully uploaded'; } return $uploadStatus; }
/** * @param int $userId - used to create a folder for the current user and rename the image * * @return void */ private function uploadImage($userId = 0) { $userId = (int) $userId; $messages = []; $dir = 'public/userfiles/images/user-' . $userId . '/'; $adapter = new Http(); $size = new Size(['min' => '10kB', 'max' => '5MB', 'useByteString' => true]); $extension = new Extension(['jpg', 'gif', 'png', 'jpeg', 'bmp', 'webp', 'svg'], true); if (!is_dir($dir)) { mkdir($dir, 0750, true); } foreach ($adapter->getFileInfo() as $file) { $ext = pathinfo($file['name'], PATHINFO_EXTENSION); $newName = $userId . '.' . $ext; $adapter->setValidators([$size, new IsImage(), $extension]); $adapter->addFilter('File\\Rename', ['target' => $dir . $newName, 'overwrite' => true]); $adapter->receive($file['name']); if (!$adapter->isReceived($file['name']) && $adapter->isUploaded($file['name'])) { $messages[] = $file['name'] . ' was not uploaded'; } } $this->setLayoutMessages($messages, 'info'); }