IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Téléchargez Discussion :

Upload de gros fichiers par fragments (chunk)


Sujet :

Téléchargez

  1. #101
    Expert éminent sénior

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 380
    Points : 10 410
    Points
    10 410
    Par défaut
    @deejayf

    Salut,

    Concernant ta dernière question, c'est un souci pour récupérer et afficher tes données dans une autre page, donc rien à voir avec le fonctionnement du module d'upload.

    Je ne répond ici que sur le fonctionnement du module d'upload, cela me fait assez de travail comme cela et aussi permet de ne garder que des infos ciblées sur ce sujet et qui pourraient être utiles à d'autres

    Ouvre une nouvelle question dans le forum php, apparemment c'est un problème pour lire dans tes répertoires ou une erreur dans ton script


    EDIT : Eventuellement le problème pourrait venir du fait que les fichiers uploadés n'ont pas des droits suffisants pour être lus. Dans ce cas j'ai donné de nombreux exemples dans les scripts côté serveur pour définir les droits avec chmod. Cependant la valeur nécessaire minimale des droits dépend spécifiquement de ton serveur.

  2. #102
    Futur Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2015
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Octobre 2015
    Messages : 8
    Points : 9
    Points
    9
    Par défaut
    Hello,

    Je sais bien que tu ne vas pas gérer tous les problèmes en dehors du sujet de Uploadajaxabci, sinon c'est clair que tu n'as pas fini. mais la le probleme viens bien de Uploadajaxabci. Je viens de faire un test avec ton fichier original, car je me suis dit ca peut venir du code que j'ai ajouter donc dans ce cas la c clair que c'est pas a toi de m'aider, et ca fait pareil et il ne se trouve pas dans un dossier admin securisé. j'ai fait le test avec UploadAjaxABCI_Basique.php qui renvoi le fichier dans "Destination_Upload1" et quand tu met le chemin dans un navigateur ca me marque le probleme de droit et si je fait la manip que je t'avais dit,effacer le jpg du serveur et le remettre sans rien modifier manuellement, ca fonctionne.

    Je ferai un essai avec les autres pour voir ce midi.

    Merci

  3. #103
    Futur Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2015
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Octobre 2015
    Messages : 8
    Points : 9
    Points
    9
    Par défaut
    Bon j'ai refait des tests et ca ne viens pas du script. Ca viens de mon hebergeur qui bloque l'acces au jpg et au mp3 mais pas au zip bizarre ... la question est surtout pkoi quand je l'upload avec uploadajaxabci j'ai pas acces et quand je l'upload manuellement ca fonctionne. Je vais bien reussir a trouver ... Merci deja pour tout ce que tu as fait... je vais chercher et prendre contact avec mon hebergeur si je trouve pas je remettrai mon script d'origine.

    Encore merci

  4. #104
    Expert éminent sénior

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 380
    Points : 10 410
    Points
    10 410
    Par défaut
    Salut,

    As-tu lu l'EDIT dans mon message précédent ? Regardes sur ton serveur les droits des fichiers pour lesquels ça fonctionne et mets les mêmes droits avec chmod lors de l'upload.

    Dans mes exemples je mets souvent un chmod 0604 qui est suffisant pour les serveurs OVH. Chez certains autres hébergeurs cela peut être 0644 ou encore plus suivant les cas.

    J'ai choisi cette valeur car ce serait imprudent de mettre d'office le maximum et que je ne peux pas connaître celle qui convient pour un serveur en particulier. Parfois cela peut aussi fonctionner sans définir le chmod lors de l'upload car le serveur mets la bonne valeur par défaut.

    Quand on utilise FTP pour transférer des fichiers sur le serveur, ils ont des droits supérieurs à ceux que l'on transfère avec php. Par exemple tu ne pourras pas écraser un fichier transféré avec un client FTP par un fichier de même nom transféré avec php. Ce sont des mesures de sécurité, puisque le transfert par FTP est normalement uniquement possible par le propriétaire du site alors qu'un transfert par php peut être effectué par un script comme celui-ci et mis à la disposition du public.

  5. #105
    Futur Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2015
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Octobre 2015
    Messages : 8
    Points : 9
    Points
    9
    Par défaut
    Re,

    J'allais justement t’écrire pour te dire que ça venais du fait que lors de l'upload les droits était a 0600 pour mes 2 premiers champs jpg & mp3 et pour le zip il me le mettait a 0604 c’était a cause de ça qui me mettais l'erreur sur les 2 premier et pas le 3eme... donc j'ai modifier la partie du chmod dans ton script comme tu me l'as dit et ça fonctionne super.

    Un grand merci a toi, tout est parfait.

    Bonne soirée

    François

  6. #106
    Expert éminent sénior

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 380
    Points : 10 410
    Points
    10 410
    Par défaut
    Citation Envoyé par deejayf Voir le message
    Un grand merci a toi, tout est parfait.
    Le tarif est de prendre 3 secondes pour cliquer sur le pouce vert dans le lien de téléchargement ici. Cela permet d'indiquer aux visiteurs qu'ils ne perdent pas leur temps en téléchargeant ce module, même s'il faut parfois comme dans ton cas, faire quelques petits ajustements. Mais bon c'est normal si l'on veut faire du sur mesure
    Allez, bonne continuation

  7. #107
    Futur Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2015
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Octobre 2015
    Messages : 8
    Points : 9
    Points
    9
    Par défaut
    Pas de problème ... c'est fait avec un grand plaisir.

  8. #108
    Expert éminent sénior

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 380
    Points : 10 410
    Points
    10 410
    Par défaut
    Version 5.0c2 en ligne


    Améliorations

    1/ Refonte de l'organisation du code php côté serveur :
    - Autoload pour les services (upload, redimensionnements, recadrages, connexion bdd, etc)
    - Ajout de classes : "Validateur" pour les champs de formulaires, "C_PDO" (connexion bdd), "SetMessages" et "Messages" pour la gestion des messages.
    - Centralisation de tous les messages dans un fichier unique afin de faciliter d'éventuelles traductions / personnalisations.
    - Ajout de fonctions (documentées dans le fichier "UploadAjaxABCIServeur.php") permettant d'éviter l'utilisation de la fonction "Transfert()" auparavant indispensable pour l'upload des fichiers. Peut éventuellement simplifier le code serveur dans certains cas.

    2/ Ajout d'un exemple de formulaire d'inscription avec avatar optionnel et éventuellement recadré (crop) :
    - Formulaire unique aux yeux du visiteur regroupant en fait deux formulaire distincts.
    - Permet de n'envoyer le formulaire d'upload qu'après que les données de l'inscription soient vérifiées et validées. Répond à cette question.
    - Tous les messages renvoyés côté client et côté serveur sont centralisés dans un fichier unique.

    3/ Mise à jour du mode d'emploi
    - avec ajout d'un paragraphe spécial débutants pour la mise en production, l'externalisation des formulaires et des dossiers d'upload.

    4/ Petites améliorations côté javascript :
    - Changement de l'ancrage des crop pour tous les exemples permettant le recadrage (permet d'alléger un peu les scripts).
    - Utilisation du mode "strict" déclaré en haut du code javascript de chaque exemple. Vous pouvez supprimer cette déclaration si nécessaire en cas d'ajout d'autres scripts ne supportant pas ce mode.
    - Correction de quelques commentaires et de la variable globale ci-dessous.

    Correction

    Correction à apporter pour les versions antérieures à la V 5.0c2, dans le fichier "UploadAjaxABCI_Crop_multiple_multiple.php" :
    Une variable globale s'était malencontreusement glissée dans le code javascript de ce fichier d'exemple.
    Remplacez la ligne message = mesFormate(nb_select_C,'s'); par var message = mesFormate(nb_select_C,'s');. Cela permettra d'éviter d'éventuels conflits avec d'autres scripts.


    Note : Je suis passé de la version 4.5 à la 5.0+ pour indiquer que les fichiers ne sont pas interchangeables d'une version à l'autre du fait de la réorganisation importante du code côté serveur et quelques variables javascript ont été renommées pour être plus explicites.

  9. #109
    Expert éminent sénior

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 380
    Points : 10 410
    Points
    10 410
    Par défaut Upload AJAX - HTML5 - PHP
    Bonjour,

    Version 5.2c en ligne

    Nouveau mode d'emploi pour cette dernière version. Fait en html il dispose d'un menu et de nombreux liens - ce qui était impossible avec l'ancienne version pdf - rendant les informations plus vites accessibles.

    Des paragraphes ont été ajoutés :
    - Liste des méthodes de la classe serveur php
    - Visibilité des fichiers uploadés
    - Méthodes équivalentes à la fonction Transfert() si l'on ne souhaite pas utiliser cette fonction pour sauvegarder le fichier côté serveur
    - Listes des classes php de services (connexion bdd, validation, crop etc.)
    - Interactions Javascript/Serveur. Utile pour ceux qui souhaiteraient employer une autre technologie serveur que Php.

    Bref il est plus complet et beaucoup plus pratique que l'ancien mode d'emploi en pdf qui a donc disparu du dossier, tout est maintenant dans la page "index.html".

    Niveau code, pas de nouvelles fonctionnalités, 1 à 2 petites optimisations très marginales côté javascript et côté php.

    Voilà ! Au passage, la longueur du mode d'emploi (page d'index) risque de faire un peu peur à ceux qui voudraient "juste une solution d'upload Ajax"

    Don't be afraid
    C'est parce qu'il y a beaucoup de méthodes disponibles. Cependant, quelques lignes de code suffisent, aussi bien côté client que côté serveur pour configurer un upload qui bénéficiera des principales fonctionnalités. De plus les exemples sont progressifs, fonctionnels et certains customisés de sorte que vous pouvez vous en servir directement en moins de 3 minutes si vous utilisez php côté serveur : le temps de dézipper le dossier et de le mettre sur votre serveur.

    Et pour ceux qui veulent aller plus loin que le simple prêt à porter, il y a aussi de la matière


    Edit : Une version 5.2c+ vient remplacer la précédente, le correcteur orthographique est passé par là et quelques explications secondaires ont été ajoutées.

  10. #110
    Expert éminent sénior

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 380
    Points : 10 410
    Points
    10 410
    Par défaut Upload AJAX - HTML5 - PHP avec compatibilité IE >= 7
    Version 6.0 en ligne


    Mises à jour

    Classe Javascript d'upload
    - Création d'une fonction événementielle "config.func_BrowserOutdeted()" qui sera exécutée si le script détecte un navigateur obsolète.

    - Suppression de la propriété "uniqid_file" dans les objets spécifiques aux fichiers. Cette propriété n'était pas indispensable au fonctionnement du script.

    - Détection d'une propriété "join_file" dans les objets spécifiques aux fichiers. Cette propriété "libre" n'est pas définie ni utilisée par la classe javascript. Cependant, si on la défini par l'intermédiaire d'une fonction événementielle, elle sera jointe à la requête ajax et récupérable côté serveur. Pratique pour joindre des informations spécifiques à chaque fichier sans besoin de créer des champs textes dynamiquement en javascript.

    A cette occasion je donne un exemple d'implémentation du plugin jQuery fileEXIF qui permet de retourner les informations EXIF des photos provenant d'appareils photo numériques dans le fichier "UploadAjaxABCI_Redimensions_Exif.php".

    Classe Php d'upload Ajax
    La classe a été scindée en deux parties, une classe "UploadABCIServices" regroupant les services avec les fonctions fréquemment utilisées dans les scripts d'upload, et la classe d'upload Php/Ajax "UploadAjaxABCIServeur" spécifique à la classe javascript, qui hérite de cette classe de services. Cela permet d'appeler la petite classe de services indépendamment de la classe d'upload Php/Ajax.

    La classe Php/Ajax a été complétée pour récupérer l'éventuelle propriété "join_file" de chaque fichier.

    Amélioration des fichiers d'exemples existants :
    De nombreux fichiers ont été améliorés parfois simplement au niveau des css, mais plus notablement les scripts proposant le recadrage qui ont profité de la nouvelle propriété "join_file" pour transmettre les données de crop vers le serveur et ainsi simplifier le code.


    Nouveau

    Création d'une classe serveur compatible avec les navigateurs obsolètes
    La classe javascript dispose d'une option de configuration by-pass "config.browserOutdeted" qui permet d'envoyer le contenu du post directement vers l'adresse indiquée dans l'attribut "action" du formulaire en cas de détection de navigateurs obsolètes. Dans ce cas, seule la fonction javascript "config.func_BrowserOutdeted()" sera exécutée (si définie).

    La classe "UploadFormABCIServeur.php" (100% php) est prévue pour traiter les fichiers en provenance directe du formulaire. Elle hérite également de la classe de services. Pour rendre les scripts compatibles IE >= 7, il suffit donc à l'aide de cette classe, de rajouter une couche php sur le script standard compatible IE >= 10.


    4 nouveaux fichiers d'exemples
    En complément du fichier "UploadAjaxABCI_Redimensions_Exif.php" cité plus haut, trois fichiers d'exemples compatibles avec les navigateurs obsolètes sont fournis pour mettre en application cette nouvelle classe serveur :
    - UploadAjaxABCI_Basique_CompNavObs.php
    - UploadAjaxABCI_Redimensions_CompNavObs.php
    - UploadAjaxABCI_Inscription_Photo_CompNavObs.php

    Ces trois fichiers d'exemple bénéficient des mêmes fonctionnalités pour les navigateurs compatibles mais permettent de traiter l'upload pour les navigateurs IE < 10. En cas de navigateur < IE10 les services sont réduits puisque le traitement est fait uniquement en php. Il sera donc impossible d'avoir des sauvegardes intermédiaires pour les gros fichiers, ni de dépasser les configurations serveur "post_mas_size", "upload_max_filesize" et "max_file_uploads". Cependant ces erreurs de dépassement sont correctement gérées et les fonctions de redimensionnements et autres fonctions de traitement serveur sont implémentées.

    Seuls cas où vous n'avez aucun intérêt à cette compatibilité pour navigateurs obsolètes :
    - Si l'objet principal du formulaire est de charger des très gros fichiers (seuls les navigateurs récents pourront utiliser la classe javascript qui permet de dépasser les configurations serveur et de disposer d'une sauvegarde temporaire).
    - Si l'objet principal du formulaire est de recadrer des photos avant l'upload (seuls les navigateurs récents pourront utiliser la classe javascript qui permet la prévisualisation des images et l'implémentation du plugin JQuery de crop).
    - Ou si vous lisez ce message dans quelques années


    Correction fichiers d'exemples

    - "UploadAjaxABCI_Inscription_Photo_Crop.php"
    Un défaut d'affichage a été corrigé qui se produisait dans le cas où le visiteur tentait de modifier des champs textes déjà enregistrés après une erreur d'upload. La requête de vérification des données textuelles se relançait et affichait des informations erronées (mais sans incidence sur les données enregistrées côté serveur). Corrigé. D'autres petites améliorations événementielles ont également été apportées.

    - "UploadAjaxABCI_Crop_multiple_multiple.php"
    Cet exemple a entre autre pour particularité d'enregistrer les crops effectués et de les réintégrer en cas de sélections successives des fichiers déjà recadrés, tant que ceux-ci ne sont pas envoyés vers le serveur. Mais si les crops étaient correctement réintégrés visuellement sur leurs photos respectives, ils n'étaient pas pris en compte par le serveur sauf si l'on recadrait à nouveau la photo avant l'upload. Il manquait quelques lignes de code... Corrigé.


    Mise à jour du mode d'emploi
    Le mode d'emploi a été mis à jour pour documenter les nouvelles fonctions et classes, d'autres précisions ont été ajoutées ici et là.


    Voilà, ce module possède maintenant des exemples "tout terrain" qui permettent de l'utiliser sans arrière pensée pour les navigateurs obsolètes puisqu'ils sont supportés, tout en bénéficiant de fonctionnalités avancées pour les navigateurs récents


    Note : Comme précédemment je suis passé de la version 5.2c+ à la version 6.0 pour indiquer que les fichiers ne sont pas interchangeables d'une version à l'autre du fait de la réorganisation importante du code côté serveur et quelques propriétés javascript ont été ajoutées/supprimées. Vos scripts d'upload déjà créés fonctionneront sans problème si vous mettez à jour simultanément la classe Javascript ET les classes serveur Php qui doivent avoir le même numéro de version

  11. #111
    Membre à l'essai
    Homme Profil pro
    Dessinateur Géomètre
    Inscrit en
    Septembre 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Dessinateur Géomètre
    Secteur : Bâtiment

    Informations forums :
    Inscription : Septembre 2012
    Messages : 6
    Points : 13
    Points
    13
    Par défaut Erreur avec JQuery 3.1.1
    Bonjour
    je viens de faire un test avec la version 3.1.0 et 3.1.1 de JQuery. Ça ne fonctionne plus du tout.
    
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    jquery-3.1.0.min.js:2 jQuery.Deferred exception: Cannot read property 'push' of undefined TypeError: Cannot read property 'push' of undefined
        at e (http://192.168.1.46/test/ABCI62/Javascript/UploadAjaxABCI.js:1:7989)
        at n (http://192.168.1.46/test/ABCI62/Javascript/UploadAjaxABCI.js:1:12640)
        at UploadAjaxABCI.Start (http://192.168.1.46/test/ABCI62/Javascript/UploadAjaxABCI.js:1:17514)
        at HTMLDocument.<anonymous> (http://192.168.1.46/test/ABCI62/UploadAjaxABCI_Custom_VerifFileExist.php:489:8)
        at j (http://192.168.1.46/test/ABCI62/Javascript/jquery-3.1.0.min.js:2:29568)
        at k (http://192.168.1.46/test/ABCI62/Javascript/jquery-3.1.0.min.js:2:29882) undefined
    Je laisse la version fourni pour l'instant en espérant que mon site déjà développé avec la version 3.1.0 fonctionne encore.

    A+

    Edit : Sur Chrome et Firefox, même résultats

  12. #112
    Membre à l'essai
    Homme Profil pro
    Dessinateur Géomètre
    Inscrit en
    Septembre 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Dessinateur Géomètre
    Secteur : Bâtiment

    Informations forums :
    Inscription : Septembre 2012
    Messages : 6
    Points : 13
    Points
    13
    Par défaut Petit bug mineur
    mais qui m'a fait perdre 1h
    La nouvelle gestion du dossier temporaire fait un test sur le dernier caractère pour qu'il soit un slash. Or, dans ma config ça ce termine par un antislash (serveur sous Windows). Erreur que j'ai mis longtemps à trouver car cela fonctionné très bien avec la version 5.

    a+

  13. #113
    Expert éminent sénior

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 380
    Points : 10 410
    Points
    10 410
    Par défaut
    Salut,

    Merci du retour

    Tu parles de la vérification dans la classe serveur UploadAjaxABCIServeur ?

    Effectivement il y a un contrôle mais c'est pour un chemin php, et chez moi les chemins php fonctionnent bien avec des slash sur un serveur windows en local (Wampserver).

    Ce contrôle n'est pas fondamental et je pourrais modifier cette vérification. Mais j'aimerais bien que tu me dise si vraiment les chemins php avec des slash posent problèmes sur ton serveur car c'est étonnant (cela dit je n'ai jamais essayé un serveur Windows en production).

  14. #114
    Membre à l'essai
    Homme Profil pro
    Dessinateur Géomètre
    Inscrit en
    Septembre 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Dessinateur Géomètre
    Secteur : Bâtiment

    Informations forums :
    Inscription : Septembre 2012
    Messages : 6
    Points : 13
    Points
    13
    Par défaut
    Bonjour
    Je suis passé par une variable du style

    $chemin = "d:\\dossier\\";

    et du coup, ça ne passé pas la verif. J'ai changé en

    $chemin = "d:/dossier/";

    et ça fonctionne très bien.

    Et pour e JQuery, est ce possible de le rendre compatible avec la version 3.1.1
    C'est pas grave si non mais ça serait bien (j'abuse!)

    Merci

  15. #115
    Expert éminent sénior

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 380
    Points : 10 410
    Points
    10 410
    Par défaut
    Salut,

    Concernant Jquery 3.11, je viens d'essayer, apparemment vite fait tout marche sauf les boutons d'upload personnalisés donc devrait pas trop y avoir de travail pour future compatibilité... Cela dit je vais attendre un peu qu'ils stabilisent ces nouvelles versions, surtout que rien n'empêche d'utiliser la lib 1.12.4 fournie avec le module d'upload. Et d'autant plus également que les versions 6+ du module d'upload donnent des exemples pour compatibilité avec les anciens navigateurs et Jquery 3.11 est à bannir dans ce cas.

    Enfin bon ça sera fait d'ici un moment (quelques mois) mais y'a rien d'urgent. Et puis en production on sait bien qu'il est imprudent de courir après les dernières versions si elles n'apportent rien de vraiment utile car c'est le meilleur moyen d'essuyer les plâtres, comme disaient les anciens

  16. #116
    Membre à l'essai
    Homme Profil pro
    Dessinateur Géomètre
    Inscrit en
    Septembre 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Dessinateur Géomètre
    Secteur : Bâtiment

    Informations forums :
    Inscription : Septembre 2012
    Messages : 6
    Points : 13
    Points
    13
    Par défaut
    Ok. merci.
    J'ai bien utilisé la version fourni 1.12... et ça fonctionne nickel

    Autre question:
    Y a-t-il un moyen de ne pas pouvoir faire de drag and drop dans la zone prévue PENDANT un upload. Car sinon, ça en recommence un et rien n'est validé.

    J'ai modifié le début de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    	function onChangeInputFiles (event)
    	{		
    		var upabci_input_name = this.name;
     
    		if (typeof(that.config.func_FileSelectAllBefore) === "function")
    		{
    			// tab_fichiers_change contient les infos de tous les fichiers déjà sélectionnés (dans tous les champs) avant cette nouvelle sélection
    			if (!that.config.func_FileSelectAllBefore(event, that.tab_fichiers_change)) 
    			{
    				return false;
    			}
    		}
     
    		var num_champ = event.data.index;
    		doNothing(event);
    ...
    pour utiliser le fonction "func_FileSelectAllBefore" qui retourne FALSE s'il faut ne pas traiter le D&D.
    Je sauvegarde dans une variable perso l'état d'upload ou non.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    	Upload.config.func_FormSubmit = function()
    	{
    		Upload.config.perso_transfert_en_cours = true;
    		...
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    	Upload.config.func_FormEnd = function(tableau)
    	{ 
    		...
    		Upload.config.perso_transfert_en_cours = false;	//Fin du transfert
    	}
    Ça fonctionne très bien avec ma bidouille mais je n'aime pas modifier les sources (le fichier UploadAjaxABCI_DEV.js), car c'est ingérable dans le cas d'une mise à jour futur.

    Merci pour tout

  17. #117
    Expert éminent sénior

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 380
    Points : 10 410
    Points
    10 410
    Par défaut
    Salut,

    Oui j'avais pensé à désactiver les clic sur les boutons files et les boutons personnalisés durant l'upload mais j'ai oublié de désactiver le drag and drop. Cela sera fait dans la prochaine version.

    En fait pour la compatibilité avec jquery 3.11 apparemment c'est juste la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $.event.props.push("dataTransfer");
    qui bloque dans la fonction "customSelect" (ligne 693 dans le fichier UploadAjaxABCI_DEV.js version 6.2).
    Donc tu peux supprimer cette ligne et toujours dans cette même fonction "customSelect", tu remplaces ensuite la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var filelist = event.dataTransfer.files;
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var filelist = event.originalEvent.dataTransfer.files;
    Cela devrait suffire pour rendre la classe javascript compatible avec jquery 3.11. Fais des tests avec cette modif puisque tu as commencé à bricoler dans la classe et préviens si tu trouves un autre problème de compatibilité

    Je ferai une mise à jour sans doute d'ici quelques jours, ou la semaine prochaine, car le problème à l'air très simple, avec également un blocage du drag and drop durant l'upload (différent de ton hack).

  18. #118
    Membre à l'essai
    Homme Profil pro
    Dessinateur Géomètre
    Inscrit en
    Septembre 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Dessinateur Géomètre
    Secteur : Bâtiment

    Informations forums :
    Inscription : Septembre 2012
    Messages : 6
    Points : 13
    Points
    13
    Par défaut
    J'ai fait les modifications comme tu m'a dis et je n'ai plus le problème pour l'instant.
    Merci beaucoup

    Ton utilitaire est vraiment génial.
    Il ne manque que de pouvoir ajouter des fichiers à uploader pendant que d'autres sont déjà en upload. La, ça serait royal. Mais la, j'abuse.

    A+

  19. #119
    Membre à l'essai
    Homme Profil pro
    Dessinateur Géomètre
    Inscrit en
    Septembre 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Dessinateur Géomètre
    Secteur : Bâtiment

    Informations forums :
    Inscription : Septembre 2012
    Messages : 6
    Points : 13
    Points
    13
    Par défaut Exclusion d'extension
    Bonjour,

    J'ai ajouté une fonction de test d'extension du nom de fichier pour non pas l'autoriser mais l'interdire.

    Dans le fichier : UploadABCIServices.php
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    public function verifExtensions($fichier,$extensions)
    {
    	...                  
    }
     
    public function verifExtensionsExclusion($fichier,$extensions)
    {
    	$filesExtensions = is_array($extensions) ? array_map('strtolower',$extensions) : [];
    	$extension_fichier = strtolower(pathinfo($fichier, PATHINFO_EXTENSION));
    	// Si le tableau des extensions autorisées est vide on accepte toutes les extensions					 
    	if (count($filesExtensions) == 0 || !in_array($extension_fichier,$filesExtensions))				 
            	return true;
    	else
    		return false;                  
    }

    Qui s'utilise comme verifExtensions().

    Si ça peut être utile à d'autres.
    A+

  20. #120
    Expert éminent sénior

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 380
    Points : 10 410
    Points
    10 410
    Par défaut
    Version 6.3 en ligne

    Les versions 6.1 et 6.2 ont vu la finalisation de la réorganisation du code côté php.
    Entre autre un trait "ParamsDefautServeur" a été créé pour regrouper les informations de configuration serveur, il est utilisé dans les classes "UploadAjaxABCIServeur", "NettoyageTemp" et "C_PDO". Quelques autres optimisations secondaires ont été apportées.


    La version 6.3
    1/ Met à jour la classe javascript pour la rendre compatible jquery 3.11.

    2/ La gestion des drag and drop a été améliorée, notamment lorsque les boutons personnalisés ne sont pas des input (fichiers "UploadAjaxABCI_Custom.php" et UploadAjaxABCI_Custom_VerifFileExist.php"). Auparavant l'élément représentant la zone de drag and drop était mis en "disabled" durant l'upload mais cela ne fonctionnait bien entendu que pour des éléments de type input. C'est maintenant corrigé pour tout type de conteneur.

    3/ En complément une fonction StopDrop() a été implémentée. Elle est automatiquement appliquée dans les cas où le drag and drop est autorisé, c'est à dire si "config.customFileSelect" a été défini et si "config.customDragAndDrop" = true. Elle permet d'éviter que la page se comporte comme une visionneuse si le visiteur relâche ses fichiers en dehors de la zone de drag and drop définie.
    Eventuellement vous pouvez l'utiliser dans les autres scripts d'upload en ajoutant simplement up.StopDrop(); dans votre configuration javascript. Cette fonction est documentée dans le mode d'emploi dans le paragraphe "Fonctions annexes" et permet de cibler un élément html particulier en passant un argument, sinon par défaut l'ensemble du document à l'exception des zones ciblées pour l'upload.

    Voilà

+ Répondre à la discussion
Cette discussion est résolue.
Page 6 sur 15 PremièrePremière ... 2345678910 ... DernièreDernière

Discussions similaires

  1. Upload de fichiers par fragments (chunk) - Erreur d'ouverture du fichier temporaire
    Par Kakolio dans le forum Bibliothèques & Frameworks
    Réponses: 5
    Dernier message: 10/07/2015, 18h27
  2. [SP-2007] Upload de gros fichiers par programme
    Par bigboomshakala dans le forum SharePoint
    Réponses: 10
    Dernier message: 31/03/2010, 09h55
  3. [Upload] Upload de GROS fichiers en php
    Par osscour dans le forum Langage
    Réponses: 21
    Dernier message: 26/05/2006, 14h13
  4. [Upload] Problème upload de gros fichiers avec Firefox
    Par the rootsm@n dans le forum Langage
    Réponses: 12
    Dernier message: 19/02/2006, 20h43
  5. [Upload] Upload de gros fichiers
    Par Rémiz dans le forum Langage
    Réponses: 8
    Dernier message: 07/01/2006, 11h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo