<?php

  /**
   * Upload error, thrown when file upload files
   * 
   * @package angie.library.errors
   */
  class UploadError extends Error {
  
    /**
     * Construct upload error
     *
     * @param integer $code
     */
    function __construct($code) {
      switch($code) {
        case UPLOAD_ERR_INI_SIZE:
          $message = 'The uploaded file exceeds the upload_max_filesize directive in php.ini';
          break;
        case UPLOAD_ERR_FORM_SIZE:
          $message = 'The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form';
          break;
        case UPLOAD_ERR_PARTIAL:
          $message = 'The uploaded file was only partially uploaded';
          break;
        case UPLOAD_ERR_NO_FILE:
          $message = 'No file was uploaded';
          break;
        case UPLOAD_ERR_NO_TMP_DIR:
          $message = 'Missing a temporary folder';
          break;
        case UPLOAD_ERR_CANT_WRITE:
          $message = 'Failed to write file to disk';
          break;
        case UPLOAD_ERR_EXTENSION:
          $message = 'File upload stopped by extension';
          break;
        default:
          $message = 'Unknown file upload error';
      } // switch
      
      parent::__construct($message, array(
        'code' => $code, 
      ));
    } // __construct
  
  }