DOCUMENTATION EN LIGNE
DE WINDEVWEBDEV ET WINDEV MOBILE

Aide / WLangage / Fonctions WLangage / Fonctions spécifiques au WEB / Fonctions upload
  • Présentation
  • Eléments mis à disposition
  • Upload via un champ de saisie de type Upload
  • Uploader un fichier dans une page
  • Afficher l'image à uploader
  • Remarque
  • Taille maximale des fichiers à uploader
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaEtats et RequêtesCode Utilisateur (MCU)
WEBDEV
WindowsLinuxPHPWEBDEV - Code Navigateur
WINDEV Mobile
AndroidWidget AndroidiPhone/iPadWidget IOSApple WatchMac CatalystUniversal Windows 10 App
Autres
Procédures stockées
Présentation
L'upload est l'opération qui consiste à sauvegarder sur le serveur Web un fichier accessible sur le poste de l'internaute. Le fichier du poste de l'internaute est "uploadé" vers le serveur : il est chargé et enregistré sur le poste serveur.
L'upload de fichiers est possible pour tous les types de fichiers.
Quelques exemples d'utilisation de l'upload de fichiers :
  • Site de type annuaire : lors de l'ajout d'un nouveau contact dans l'annuaire, l'internaute peut sélectionner sur son poste la photo du contact. Pour être affichée quel que soit l'internaute, l'image est "uploadée" sur le serveur.
  • Site de type gestion documentaire : chaque internaute peut mettre à disposition de tous, divers types de documents : texte, ... Ces documents sont sélectionnés sur le poste de l'internaute et "uploadés" sur le serveur afin d'être consultable par tous les internautes.
Eléments mis à disposition
Pour gérer l'upload de fichiers, WEBDEV met à votre disposition :
  • un champ de saisie de type UPLOAD : Dans le navigateur, un bouton "PARCOURIR" est automatiquement ajouté à droite du champ de saisie de type Upload. Ce bouton permet à l'internaute de sélectionner le fichier à "uploader".
    Sous l'éditeur, un bouton gris apparaît. Ce bouton n'est pas modifiable (style, libellé, ...).
    Attention : ce champ de saisie est un champ spécifique : il est déconseillé d'utiliser les propriétés de type Valeur sur ce champ. Pour obtenir le nom du fichier uploadé, il est nécessaire d'utiliser la fonction UploadNomFichier. Le fonctionnement de l'upload avec ce type de champ est présenté dans le paragraphe Upload via un champ de saisie.
  • un champ Upload (mono-fichier ou multi-fichiers) : Plusieurs champs sont automatiquement insérés dans l'éditeur, avec le code WLangage permettant de les utiliser immédiatement. Ce champ peut être généré pour une exécution basée sur HTML5. Pour plus de détails, consultez Champ Upload.
  • deux fonctions serveur du WLangage :
    UploadCopieFichierEnregistre un fichier "uploadé" sur le serveur. Lors de cet enregistrement, il est possible de renommer le fichier enregistré sur le serveur.
    UploadNomFichierRenvoie le nom d'un fichier "uploadé" (nom d'origine du fichier, ou nom du fichier enregistré sur le serveur)
  • un ensemble de fonctions navigateur du WLangage permettant de manipuler le champ Upload :
    UploadFichierEnCoursIndique le fichier en cours d'upload via le champ Upload.
    UploadLanceLance l'envoi des fichiers sélectionnés dans un champ Upload.
    UploadSupprimeSupprime un fichier de la liste des fichiers à uploader : le fichier ne sera pas uploadé sur le serveur.
    UploadSupprimeToutVide la liste des fichiers à uploader : aucun fichier ne sera uploadé sur le serveur.
    UploadTailleRenvoie la taille totale (en octets) des fichiers de l'upload en cours via un champ Upload.
    UploadTailleEnvoyéeRenvoie la taille totale (en octets) des fichiers déjà envoyés par l'upload en cours via un champ Upload.
    UploadTailleEnvoyéeFichierEnCoursRenvoie la taille (en octets) déjà envoyée du fichier en cours d'upload via un champ Upload.
    UploadTailleFichierEnCoursRenvoie la taille totale (en octets) du fichier en cours d'upload via un champ Upload.
Upload via un champ de saisie de type Upload

Uploader un fichier dans une page

Pour uploader un fichier dans une page :
  1. Créez un champ de saisie de type UPLOAD (le type du champ est défini dans l'onglet "Général" du champ). Grâce à ce champ, l'internaute pourra sélectionner le fichier à "uploader".
  2. Ajoutez un champ Bouton ou un champ Lien. Ce champ permettra de télécharger le fichier sur le serveur. Ce champ Bouton ou Lien doit être de type "Submit" (paramètre "Action du bouton" dans l'onglet "Général" de la fenêtre de description du champ). Lors de la validation de la page grâce à ce champ, le fichier est uploadé dans un répertoire temporaire du serveur. Ce fichier n'est donc pas visible pour les autres internautes.
  3. Dans le code de clic serveur de ce champ Bouton ou Lien, vous pouvez utiliser :
    • la fonction UploadNomFichier (par exemple UploadNomFichier(<Champ Upload>, Faux)) pour vérifier que le fichier a été uploadé et récupérer son nom. En effet, lors de l'upload, le fichier est renommé avec un nom de fichier temporaire.
    • la fonction UploadCopieFichier afin de copier et de renommer le fichier uploadé sur le serveur. Vous pouvez par exemple copier ce fichier dans le répertoire des ressources (_WEB) ou dans un répertoire accessible par un alias.
    • la fonction HAttacheMémo pour charger l'image dans une rubrique mémo d'un fichier HFSQL.
Erreur à ne pas commettre : L'utilisation directe du nom de fichier sur le poste navigateur (lecture de la valeur par la propriété Valeur en code serveur ou navigateur) dans des fonctions de gestion de fichiers est une erreur à ne pas commettre. En effet, cette manipulation fonctionne en mode développement (car le serveur est sur le même poste que le navigateur) mais PAS en déploiement. Dans ce cas, le serveur et le navigateur sont machines différentes. Le serveur ne voit pas les fichiers du navigateur. Pour obtenir les noms de fichiers à manipuler, utilisez UploadNomFichier.

Afficher l'image à uploader

Pour afficher l'image précédemment sélectionnée via un champ de saisie de type Upload (SAI_ChampUpLoad) dans un champ Image (IMG_ChampImage) :
  1. Dans le code de la page, ajoutez le code navigateur optionnel "souris déplacée" (OnMouseMove) .
  2. Saisissez le code suivant dans ce code :
    SI SAI_ChampUpLoad <> "" ALORS
    SI IMG_ChampImage <> SAI_ChampUpload ALORS
    IMG_ChampImage = SAI_ChampUpload
    FIN
    FIN
Remarque : Cette manipulation peut ne pas fonctionner selon le navigateur utilisé et le niveau de sécurité défini.
Remarque

Taille maximale des fichiers à uploader

Par défaut, la taille des fichiers à uploader est illimitée dans le moteur WEBDEV. Cette taille peut être limitée :
  • par le serveur Web utilisé. Pour plus de détails, consultez la documentation du serveur Web utilisé.
  • par le serveur d'application WEBDEV.
Si le fichier à uploader dépasse la taille limite, le fichier n'est pas uploadé.
Pour modifier la taille maximale des fichiers à uploader dans le serveur d'application WEBDEV, il est nécessaire de modifier la base de registre sur le serveur. Cette modification peut être réalisée pour toutes les applications WEBDEV.
Pour modifier la taille des fichiers uploadés pour toutes les applications WEBDEV :
  1. Sélectionnez la clé de registre suivante :
    • Sur un poste 64 bits : HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\PC SOFT\WEBDEV\29.0
    • Sur un poste 32 bits : HKEY_LOCAL_MACHINE\SOFTWARE\PC SOFT\WEBDEV\29.0
  2. Ajoutez la clé de type chaîne MAX_UPLOAD. La valeur de cette clé correspond à la taille maximale des fichiers à uploader (en Ko).
Dans le cas d'un transfert important (plusieurs centaines de Mo), il est conseillé d'utiliser le protocole FTP et non pas l'upload. Il est possible d'effectuer un transfert FTP depuis une page WEBDEV, grâce à une applet Java créée avec WINDEV.
PHP Limites en PHP :
  • La taille des fichiers uploadés est limitée par les directives "upload_max_filesize" et "post_max_size" dans le fichier de configuration de PHP (fichier php.ini).
  • L'upload de fichiers doit être autorisé par le serveur PHP. Pour cela, la directive "file_uploads" doit être à "on" dans le fichier de configuration de PHP (fichier php.ini).
  • La directive upload_tmp_dir du fichier de configuration doit être renseignée vers un répertoire qui possède les droits en lecture/écriture.
Liste des exemples associés :
Upload ou Download d'un fichier Exemples unitaires (WEBDEV) : Upload ou Download d'un fichier
[ + ] Upload (copier vers le serveur) et download (télécharger depuis le serveur) d'un fichier :
- Copier un fichier du poste navigateur vers le poste serveur
- Télécharger un fichier présent sur le serveur
- Télécharger un fichier présent sur le serveur grâce à un lien
- Télécharger un fichier présent sur le serveur en demandant son ouverture
Version minimum requise
  • Version 9
Commentaires
Nécessité d'activer une option dans l'administrateur Webdev
Ce serait bien de signaler qu'il est nécessaire de cocher l'option "Autoriser les fonctions fCopieFichierRépertoireWeb et fSupprimeFichierRépertoireWeb" dans l'administrateur WEBDEV (option présente dans l'onglet "Avancé" de l'administrateur WEBDEV).

Sans cela aucun upload n'est possible (et aucun message d'erreur n'est même affiché en mode test !)
quentin
12 jan. 2021

Dernière modification : 11/01/2024

Signaler une erreur ou faire une suggestion | Aide en ligne locale