/**
  * 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');
 }