2017 © Pedro PelĂĄez
 

library fichier

Téléchargement de fichiers / File upload management

image

jemdev/fichier

Téléchargement de fichiers / File upload management

  • Wednesday, April 4, 2018
  • by Cyrano
  • Repository
  • 1 Watchers
  • 0 Stars
  • 8 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 1 Versions
  • 60 % Grown

The README.md

jemdev\fichier TélĂ©chargement de fichiers


Avertissement

Attention, cette classe est livrée sans garantie. Développée rapidement pour répondre à un besoin interne à cause d'anomalies trop longue à corriger sur une librairie utilisée jusqu'alors, elle répond d'abord à mon besoin. Toute proposition d'amélioration sera prise en considération si elle conserve la simplicité d'utilisation., (*1)


Installation

Avec Composer, ajouter ce qui suit dans la partie require de votre composer.json:, (*2)

{  
    "jemdev/fichier": "dev-master"  
}  

Présentation

Cette classe permet de gérer l'envoi de fichiers par l'utilisation d'un formulaire. Il peut s'agir de fichiers textes, bureautique ou des images., (*3)

Des méthodes additionnelles permettent de retailler des images voire de créer des miniatures en réduisant proportionnellement les dimensions de l'image originale., (*4)

Utilisation

Chaque fichier devra ĂȘtre traitĂ© individuellement au cas oĂč certains paramĂštres seraient propres Ă  chaque fichier, par exemple leur destination. À partir d'une instance de jemdev\fichier\upload, on dĂ©finit d'abord les paramĂštres si nĂ©cessaire. Notez que les mĂ©thodes de rĂ©glage des paramĂštres peuvent ĂȘtre chainĂ©es., (*5)

Utilisation de base

Sans paramétrage particulier, l'utilisation est on ne peut plus simple :, (*6)



Si plusieurs fichiers sont sélectionnés via un champ de type file avec l'attribut multiple, on pourra se retrouver alors avec le contenu de $_FILES ressemblant à ceci:, (*7)

Array(
    [fichier] => Array(
        [name] => Array(
            [0] => sites_publics.rar
            [1] => stats_jemweb.info.txt
            [2] => ZSST-20130331-140024.7z
        )
        [type] => Array(
            [0] => application/octet-stream
            [1] => text/plain
            [2] => application/octet-stream
        )
        [tmp_name] => Array(
            [0] => C:\Windows\Temp\phpD031.tmp
            [1] => C:\Windows\Temp\phpD042.tmp
            [2] => C:\Windows\Temp\phpD053.tmp
        )
        [error] => Array(
            [0] => 0
            [1] => 0
            [2] => 0
        )
        [size] => Array(
            [0] => 140763
            [1] => 29446
            [2] => 2025976
        )
    )
)

Chacun des fichiers sera traitĂ© dans une boucle automatique et stockĂ© au mĂȘme endroit. Si on veut effectuer un traitement spĂ©cifique pour chacun en variant les paramĂštres de l'instance, il faudra effectuer la boucle en amont. Chaque tour de la boucle traitera donc un tableau semblable Ă  celui-ci:, (*8)

Array(
    [name]     => sites_publics.rar
    [type]     => application/octet-stream
    [tmp_name] => C:\Windows\Temp\phpD031.tmp
    [error]    => 0
    [size]     => 140763
)

On peut donc traiter le tableau en amont en préparant un tableau par fichier de la maniÚre suivante :, (*9)



Notez que si le répertoire de destination n'existe pas, il sera créé. Par défaut, les droits d'accÚs à ce répertoire seront définis à 0755 (chmod), ceux des fichiers à 0644. On peut modifier ce mode avant l'enregistrement. Par exemple si on veut que le fichier soit défini à 0777 :, (*10)

$oUpload = new jemdev\fichier\upload();
$oUpload->setDroitAccesFichier(0777);
//... la suite du code de traitement ne change pas.

Manipulation d'images

Les fichiers envoyĂ©s peuvent ĂȘtre des images et peuvent, si nĂ©cessaire, ĂȘtre redimensionnĂ©s. On peut Ă©galement gĂ©nĂ©rer une miniature indĂ©pendamment du fichier original dans un rĂ©pertoire distinct., (*11)

Note :

Les méthodes de traitement d'images ne seront pas accessible lors d'envoi de fichiers multiples., (*12)

On peut au préalable indiquer les dimensions maximales de l'image normale ainsi que la hauteur maximale de la vignette. Le cas échéant, les retailles de l'image originale seront proportionnelles., (*13)

Le mĂȘme principe que pour tout fichier est mis en œuvre pour l'enregistrement de l'image : on peut y rajouter la crĂ©ation d'une miniature en indiquant un rĂ©pertoire de stockage distinct, par exemple un sous-rĂ©pertoire dans celui contenant l'image normale., (*14)

Pour un fichier simple, on peut ainsi créer une miniature en indiquant le chemin vers le répertoire approprié pour les miniatures, suivez les commentaires dans l'exemple de code ci-dessous)., (*15)


En résumé

Ce systÚme est trÚs basique pour une utilisation quotidienne. N'hésitez pas à proposer des améliorations si toutefois elles ne compliquent pas son utilisation., (*16)


Note for english speaking users

My english level is not sufficient to write a good documentation in english. But if you're natively english speaking and understanding well french, please, feel free to write a translation. Enjoy this library., (*17)

The Versions

04/04 2018

dev-master

9999999-dev http://jem-dev.com/

Téléchargement de fichiers / File upload management

  Sources   Download

CeCILL-2.1

The Requires

  • php >=5.4.0

 

by Jean Molliné

library upload files images thumbnail namespace