FileManagerInterface.php 2.75 KiB
<?php
/**
 * Copyright (C) 2015 IRSTEA
 * All rights reserved.
 * @package irstea/file-upload-bundle
 * @author Guillaume Perréal <guillaume.perreal@irstea.fr>
 */
namespace Irstea\FileUploadBundle\Model;
use Symfony\Component\Validator\Exception\InvalidArgumentException;
/**
 * Gestionnaire de fichier uploadé.
 * Cette interface est le point d'entrée obligatoire pour toute manipulation de fichiers uploadés.
interface FileManagerInterface
    /** Retrouve un fichier uploadé par son identifiant.
     * @param string $id Identifiant du fichier.
     * @return UploadedFileInterface|null Le fichier retrouvé ou null si aucun fichier ne correspond.
     * @api
    public function get($id);
    /** Crée un nouveau fichier uploadé, vide.
     * Le fichier est créé à l'état UploadedFileInterface::ETAT_EN_COURS.
     * @param string $name Nom original du fichier.
     * @param int $size Taille prévisionnelle, en octets.
     * @param string $mimeType Mime TYPE provisoire.
     * @param int $lastModified Timestamp de la date de dernière modification.
     * @return UploadedFileInterface Le fichier créé.
     * @api
    public function create($name, $size, $mimeType, $lastModified = null);
    /** Duplique un fichier.
     * N'accepte que des fichiers valides.
     * Le nouveau fichier est automatiquement orphelin, avec un chemin par défaut.
     * @param UploadedFileInterface $original
     * @return UploadedFileInterface
     * @throws InvalidArgumentException Le fichier original est invalide.
     * @api
    public function duplicate(UploadedFileInterface $original);
    /** Supprime un fichier uploadé.
     * *Attention :* le fichier est supprimé du disque !
     * @param UploadedFileInterface $file Fichier à supprimer.
     * @api
    public function delete(UploadedFileInterface $file);
    /** Indique que l'upload d'un fichier est terminé.
71727374757677787980818283848586878889909192939495969798
* Cela passe le fichier à l'état UploadedFileInterface::ORPHELIN et provoque la mise-à-jour de la taille, du * type MIME et de la somme de contrôle. * * @param UploadedFileInterface $file Fichier terminé. * * @internal */ public function completed(UploadedFileInterface $file); /** Retourne une liste de fichiers invalides à supprimer. * * Ce sont des fichiers partiels ou orphelin qui n'ont pas été modifiés depuis plus d'une heure. * * @return UploadedFileInterface[] * * @internal */ public function findGarbage(); /** Retourne la liste des fichiers à valider. * * @return UploadedFileInterface[] * * @internal */ public function findFilesToValidate(); }