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. #261
    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
    Concernant l'utilisation de cette discussion

    Ce serait bien d'indiquer les messages qui vous ont aidés, soit par un message de votre part en retour, soit par l'utilisation du système de notation des messages (pouces verts en bas des messages). C'est important pour respecter mon travail (conséquent pour la création du module d'upload et l'aide à l'installation dans cette discussion), et de même pour les autres visiteurs qui pourront mieux orienter leur recherche et trouver des solutions, ce qui peut aussi éviter de poser des questions déjà traitées.

    Merci de respecter ces règles communautaires qui prennent un minimum de temps, 1 seconde pour cliquer sur le système de notation c'est pas la fin du monde (ou quelques secondes de plus si vous envoyez un message)

  2. #262
    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-Php, version 8.0c
    disponible ici

    Cette version est compatible Php 5.6 à 8.0+ (testée avec Php 8.1) et ajoute une fonctionnalité de création de filigrane sur les images. Le filigrane est défini par l'utilisateur en mode wysiwyg et personnalisable pour chaque photo dans le cas d'un upload multiple.


    Php
    1/ Code compatible Php 8.0+

    2/ Nouvelle classe de traitement des images "ImgGD"
    Cette classe permet d'optimiser des images pour le web, de faire des redimensionnements, des recadrages, et d'appliquer des filigranes textuels sur les images en utilisant des polices TrueType. Les fonctions de recadrage et de filigrane sont conçues pour traiter les données issues des formulaires afin de proposer un ensemble wysiwyg pour un contrôle total du filigrane et/ou du recadrage côté visiteur.

    3/ Mise à jour Php 8 pour des scripts créés avec d'anciennes versions 7.0+
    Les classes "CropRedim" et "RedimImage" inclues dans le dossier "Php_Upload\Classes", ne sont plus utilisées dans cette nouvelle version qui utilise désormais la classe "ImgGD" pour tous les scripts Php incluant un traitement sur les images. Elles ont néanmoins été mises à jour pour Php 8.0+ et sont fournies dans le dossier en téléchargement pour rendre compatible d'anciens scripts basés sur les versions 7.0+ de ce module d'upload. Utilisez ces classes en remplacement des classes existantes. De même, le trait "UploadABCITraitServices", inclus dans le dossier "Php_Upload\Classes", devra également être remplacé par le trait de même nom fourni dans cette nouvelle version, sinon le contrôle du type Mime renverra des erreurs avec Php 8.1.

    Si vous souhaitez faire une mise à jour en utilisant cette nouvelle version et en y incluant votre ancien code php d'upload, notez que la fonction "catchErrorServeur" a été renommée "catchErrorServer".


    Javascript
    La classe FiligraneABCI.js propose un module de création de filigrane wysiwyg qui utilise des polices TrueType. Choix du contenu textuel, de la police, de la couleur, de la taille, déplacement numérique du filigrane sur l'image ou par glisser-déposer, gestion de presets pour améliorer la productivité, voir le fichier de démonstration en bas de page.


    Formulaires
    La plupart des formulaires ont été optimisés et deux nouveaux formulaires sont disponibles pour illustrer ces nouvelles fonctionnalités :
    - "UploadAjaxABCI_Filigrane_multiple.php" pour la création de filigranes compatibles avec un upload multiple.
    - "UploadAjaxABCI_Filigrane_Crop_multiple.php" pour la création de filigranes suivi d'un éventuel recadrage, compatibles avec un upload multiple.
    Vous pouvez ajouter ou supprimer des polices proposées en modifiant simplement le contenu du dossier "Font". De très nombreuses polices TrueType sont disponibles sur google fonts et ailleurs.


    Fichier de démonstration
    Création de filigranes (exemples côté client).

    Téléchargez le module complet qui vous permettra de finaliser l'upload et le traitement des images côté serveur.


    Note: cette version 8.0c corrige une petite dysfonctionnalité du mode d'emploi (les liens de provenance externe n'étaient pas correctement ancrés) de la version 8.0 qui avait été mise à disposition en février 2022 mais qui n'avait pas fait l'objet d'information.


    Vos commentaires sont les bienvenus

  3. #263
    Membre à l'essai
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2022
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2022
    Messages : 15
    Points : 18
    Points
    18
    Par défaut Transfert de fichier
    Bonjour,

    J'ai utilisé Upload-Ajax-ABCI dans le but de redimensionner des images avant l'upload avec le module d'exemple UploadAjaxABCI_Traitements_Images.php.

    En local avec easyphp devserver et cela fonctionne bien.

    Par contre sur le serveur d'OVH mutualisé, le chargement d'une image de 4,5 Mo s'effectue correctement mais j'ai le message d'erreur "Echec du traitement. Connexion non valide ou perdue..." et le chargement final est interrompu.

    J'ai regarder le tuto "Configuration Serveur" pour essayer de comprendre ....

    Avez-vous déjà eu cette erreur ?

    Merci d'avance

  4. #264
    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
    Bonjour,

    En cas de problème, regardes plutôt "Mise en production, notes -> Debug" dans le mode d'emploi (fichier index.html).

    Je testerai demain ce script sur un serveur OVH mututalisé, à priori il devrait fonctionner puisque j'utilise ce module d'upload pour différents sites chez OVH et également d'autres hébergeurs, sans problème. Commences donc par regarder le paragraphe indiqué ci-dessus. Essaies éventuellement d'autres exemples de scripts pour voir si le problème est récurrent. Et indiques moi aussi la version de php que tu utilises chez OVH (c'est indiqué dans ton panel OVH).

  5. #265
    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
    Re bonjour,

    Citation Envoyé par ABCIWEB Voir le message
    Je testerai demain ce script sur un serveur OVH mututalisé...
    Donc j'ai téléchargé le dossier zip depuis cette adresse (la même que la tienne je suppose), puis j'ai dézippé le dossier et enfin j'ai téléchargé son contenu, soit le dossier "Upload-Ajax-ABCI" sur un mutualisé OVH à la racine du site.

    Ensuite dans mon navigateur internet, j'ai rentré l'adresse www.monsite.net/Upload-Ajax-ABCI/ et depuis le mode d'emploi je me suis rendu dans la rubrique "Mise en production, notes -> Debug" et j'ai cliqué sur le lien "Test_config.php" par acquis de conscience pour vérifier que tous mes dossiers étaient accessibles et tout était OK (donc aucune configuration nécessaire pour l'accès des dossiers).

    Puis toujours depuis le mode d'emploi "Fonctionnalités, installation -> Fichiers d'exemples", j'ai cliqué sur "UploadAjaxABCI_Traitements_Images.php" et fait un test avec une ou plusieurs images jpg de 4 et 5Mo pour reprendre ton exemple, et tout s'est passé correctement.

    Je t'ai précisé la procédure point par point, essaies de faire pareil, tu devrais obtenir le même résultat.

    Je précise par ailleurs que je suis sur une offre mutualisée OVH "Perso" avec Php 8.1. Cela dit, j'ai d'autres clients qui sont sur une offre mutualisée OVH "Kimsufi" avec Php 7.3, qui se servent du module d'upload tous les jours depuis 3 ans et je n'ai jamais eu aucun retour de dysfonctionnement.

    Et selon mes derniers tests je ne constate aucun problème non plus...

    Enfin si cela ne fonctionne toujours pas en suivant ma procédure point par point, dans le fichier "Php_Upload -> UploadAjaxABCI_Upload_Traitements_Images.php" (qui est le fichier de destination de la requête Ajax employé dans ton exemple), il y a une ligne // $up->setModeDebug (); vers le haut du script. Supprimes temporairement les deux slash au début de cette ligne pour la dé commenter, peut-être tu en saura plus sur l'origine de ton problème.

  6. #266
    Membre à l'essai
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2022
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2022
    Messages : 15
    Points : 18
    Points
    18
    Par défaut
    La version stable que j'utilise : PHP Version 7.4.29,

    OK, Je vais regarder le coté Debug

    Merci.

  7. #267
    Membre à l'essai
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2022
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2022
    Messages : 15
    Points : 18
    Points
    18
    Par défaut
    Effectivement en passant directement par " Upload-Ajax-ABCI /UploadAjaxABCI_Traitements_Images.php" donc par le formulaire natif ça fonctionne très bien !

    Du coup si je veux aussi uploader des vidéos il faut que change d'appli, je pensais à " UploadAjaxABCI_Upload.php " avec le formulaire " form_files1 " en n'utilisant que les formats vidéos.

    Ensuite est-il possible de rafraichir la page en fin de téléchargement car je voudrais intégrer la visualisation des fichiers du dossier " Destination_Upload1 " ?

    Merci pour l'aide

    Cette application est vraiment formidable ! Bravo !

  8. #268
    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,

    C'est comme tu veux, si besoin tu peux utiliser un même formulaire qui chargera des photos en faisant si besoin des redimensionnements, mais qui pourra aussi uploader des vidéos dans un autre dossier par exemple. Ou deux formulaires distincts dans une même page ou dans des pages différentes.

    Dis-moi exactement ce que tu veux avoir comme fonctionnalités si tu veux que je te conseilles au mieux.

    Après pour les vidéos et surtout si tu es sur un mutualisé, tu vas assez vite être contraint par les capacités de stockage de ton serveur distant. De même pour la lecture, si plusieurs dizaines de visiteurs lisent tes vidéos simultanément, OVH va très probablement te dire que tu surpasses les conditions standard d'utilisation d'un mutualisé. Cela n'a rien à voir avec le module d'upload lui-même qui chargera ce que tu veux, même des très grosses vidéos puisqu'à l'origine il a été conçu pour surpasser les limites upload_max_filesize, post_max_size et max_file_uploads, mais un serveur mutualisé va très vite limiter tes possibilités de stockage et de lecture.

    PS: La solution la plus couramment utilisée sur un mutualisé est de charger tes vidéos sur Youtube ou Dailymotion puis de les intégrer dans ton site.

  9. #269
    Membre à l'essai
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2022
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2022
    Messages : 15
    Points : 18
    Points
    18
    Par défaut
    Salut,

    C'est pour cela que toutes les images sont redimensionnés 1024 / 1024, pour l'affichage c'est largement suffisant.

    Je n'effectue pas de sauvegarde de l'image complète (l'utilisateur la conserve sur son PC).



    Alors, en fait j'ai utilisé mon ancien montage de téléchargement existant (je ne voulais pas tout refaire) en incorporant un i-frame en lieu et place de mon ancien formulaire et j'y ai incorporé la partie " Upload-Ajax-ABCI ".

    J'ai modifié le chemin d'envoi Upload
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    var destination_ajax = 'Php_Upload/UploadAjaxABCI_Upload_Traitements_Images1.php?Dossier=<?php echo $Dossier ?>&SousDos1=<?php echo $SousDos1 ?>';

    Dans le fichier UploadAjaxABCI_Upload_Traitements_Images1.php, je recupère le dossier " photos " et le sous-dossier qui a été créé par l'utisateur.

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    // Vous devez vérifier l'existence de ces dossiers ou changer ces adresses.*/
    if (@$_GET["SousDos1"]) {
    	$Dossier = $_GET["Dossier"];
    	$SousDos1 = $_GET["SousDos1"];
    }
    /*------------------------------------------------------*/
    $dossier_destination = '../../acces_adherents/Media/'.$Dossier.'/'.$SousDos1.'/';
    /*------------------------------------------------------*/

    En suite il fallait que mon i-frame s'adapte en hauteur au nombre d'image à uploader.

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <input type="file" id="upl" name="upload" multiple="multiple" onchange="Ifr()>
     
    <script>
    function Ifr(){
            var fileInput = document.getElementById("upl");
            var files = fileInput.files;
            var nbFichiers = files.length;
            window.parent.document.getElementById("EnvTestEssai").style.height =120+(nbFichiers*76)+"px";
    }
    </script>

    Cela fonctionne super bien.

    Je voudrai raffraichir la page quand tous les téléchargements sont terminés pour afficher les nouvelles photos dans le sous-dossier.

    L'action à faire est facile : window.location.href = "EssaiUp1.php?Dossier="+Dossier+"&SousDos1="+SousDos1;.

    mais avec quel élément déclencheur ? (ce que je fait quand je clique sur le sous-dossier)


    Une Idée ?

    Nom : EssaiUpload.jpg
Affichages : 168
Taille : 81,2 Ko

  10. #270
    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,

    La plupart du temps, il suffit de mettre le code Php du script d'upload au plus haut dans la page quand on veut l'intégrer dans un autre script et ça fonctionne. Mais bon je comprends que l'on soit parfois tenté par un iframe pour encore plus de simplicité.

    En effet, il faut ruser un peu pour définir la hauteur de l'iframe, ta solution est un bon début mais pas optimisée, car suivant les messages d'erreur que la classe d'upload peut retourner, la hauteur totale va être modifiée, de même lors du redimensionnement de la fenêtre du navigateur, la largeur des portables etc. Aussi pour essayer de compenser tu es obligé de faire des micro vignettes quasi illisibles, mais tu te ne résoudras pas tous les problèmes non plus, ça finira par déborder.

    La solution est dans les fonctions javascript évènementielles "Options de la classe Javascript -> Fonctions Javascript événementielles". De même pour faire ta redirection en fin de traitement. Je n'ai pas le temps de t'expliquer aujourd'hui, laisses-moi 2-3 jours et je te ferai un exemple complet avec les trois fichiers (formulaire, upload php et iframe). Cela me fera l'occasion de créer un exemple de plus, car il est vrai que pour ceux qui veulent intégrer ce module d'upload dans un script un peu complexe ou un CMS, la solution iframe est vraiment pratique.

    Au passage, c'est vraiment pas beau cet opérateur de suppression d'erreur '@' devant ton GET, on teste des variables avec isset ou !empty, pas avec ça, c'est réservé pour tester le retour de fonctions qui ne sont pas encore mises à jour pour émettre des exceptions mais pas plus.

    Et ce sont les utilisateurs qui créent les dossiers et sous dossiers ? Parce que là tel quel, si pas de contrôle dans le script d'upload un pirate pourrait rentrer n'importe quoi dans ton GET, y compris des caractères permettant de naviguer dans l'arborescence de tes dossiers. A minima il faudrait contrôler le contenu de ce GET. La création de ces dossiers/sous-dossiers est-elle indépendante du script d'upload ? Si oui tu aurais tout intérêt à les passer dans une variable de session, et les contrôler lors de leur création. Réponds-moi précisément sur ces dernières questions s'il te plait, quitte à faire un exemple, autant l'adapter tout de suite à tes besoins.

    A bientôt.

  11. #271
    Membre à l'essai
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2022
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2022
    Messages : 15
    Points : 18
    Points
    18
    Par défaut
    Salut,

    En fait au début j'avais intégré avec un "require" dans ma page principale mais cela me provoquait une erreur de d'ouverture de session et je ne maîtrise pas la gestion des cessions.

    Donc je me suis tourné vers un i-frame.

    Je vais déjà modifier le mes variables précédés d'un "@".

    Je manque un peu de temps actuellement mais je vais réfléchir à tous ces problèmes.

    Si tu peux me déjà me donner une solution pour disposer d'un élément déclencheur pour recharger ma page quand tous les téléchargements sont terminés cela me rendrait grandement service.

    @+

  12. #272
    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 marcouni Voir le message
    Salut,
    Je ne maîtrise pas la gestion des sessions.

    Je manque un peu de temps actuellement mais je vais réfléchir à tous ces problèmes.

    Si tu peux me déjà me donner une solution pour disposer d'un élément déclencheur pour recharger ma page quand tous les téléchargements sont terminés cela me rendrait grandement service.

    @+
    1/ Il suffit de mettre session_start(); en haut de ton script php pour pouvoir initié et utiliser des variables de session. Ainsi tu peux faire passer des variables sécurisées de page en page tant que tes scripts sont sur le même serveur et que "session_start()" est déclaré en haut de chacun de ces scripts.
    page A
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <?php 
    session_start();
    //...
    $_SESSION['toto'] = "titi";
    //...
    $_SESSION['lulu'] = "lili";
    ...
    ?>
    pages B,C,D...
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <?php 
    session_start();
    //...
    echo $_SESSION['toto'];// affiche titi
    //...
    echo $_SESSION['lulu'];// affiche lili
    ...
    ?>

    2/ Sans trop réfléchir tu sais bien si ce sont les utilisateurs qui créent leur sous-dossiers ou pas.

    Si oui le script que tu utilises n'est pas le plus approprié car il y a l'exemple "UploadAjaxABCI_Redimensions_Album.php" qui permet de créer des sous dossiers et de les mettre à jour. L'avantage est que tout le procédé est déjà en place: sécurisation du nom des sous-dossiers, vérification que la création d'un nouvel album n'écrase pas un album déjà existant, visualisation des fichiers uploadés, et la création d'un nouveau album se fait simultanément avec l'upoad de photos donc en une seule étape.

    Ainsi tu pourrais garder ta présentation pour la suppression et (je suppose) la visualisation des albums déjà existants avec un minimum de travail pour la mise à jour d'anciens album et la création de nouveaux, car si tu sais faire une liste pour afficher les dossiers existants, tu peux tout aussi bien te servir de cette même liste pour alimenter les options du select du fichier d'exemple de création d'album photo. Et avec l'utilisation de variables de session dans laquelle tu passerais l'adresse du dossier parent (chemin le vers dossier "Photos") tu aurais un script sécurisé.

    3/ Oui je vais te donner un exemple, mais autant partir sur de bonnes bases. Es-tu certain que le script de création d'album n'est pas le plus approprié ?

    Enfin quoi qu'il en soit, tu as tout intérêt à sécuriser tout ce qui passe dans des variables utilisateur sinon ce sont des failles de sécurité majeure, surtout quand il s'agit de mettre à jour ou de supprimer des dossiers. Le chemin vers le dossier parent doit toujours être transmis via une variable de session pour un script accessible au public et les sous-dossiers vérifiés pour ne pas contenir des caractères qui permettraient de naviguer dans l'arborescence de ton site.

    Donc quoique tu choisisses il ne faut pas passer le chemin du dossier parent dans une variable GET, ni même $_POST. Déclares une variable de session genre "$_SESSION['dir_photo']" qui contient l'adresse du répertoire "Photos" et je te donnerai un exemple de ton choix avec cette variable de session.

  13. #273
    Membre à l'essai
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2022
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2022
    Messages : 15
    Points : 18
    Points
    18
    Par défaut
    OK

    Cela semble simple comme ça, mais il faut déjà que je digère toutes ces infos car je n'ai plus la vivacité d'esprit d’antan . C'est vrai que les questions sécuritaires deviennent essentielles de nos jour.

    Alors pour tout dire, ma page index avec toutes les infos qu'elle comporte ne s'adresse qu'aux visiteurs lambda qui veulent s'informer sur nos prestations.

    Par contre tous les adhérents ont un accès par identification à d'autres pages comme les résultats, records, images (après validation des contenus par le modérateur), etc... .

    Il y a aussi un accès restreint pour les membres du comité et du bureau.

    Si ça t'intéresse, un coup d’œil voici le lien UAVH

    @+

  14. #274
    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 marcouni Voir le message
    Par contre tous les adhérents ont un accès par identification à d'autres pages comme les résultats, records, images (après validation des contenus par le modérateur), etc... .
    C'est bien qu'il y ait une validation par un modérateur, mais en attendant la validation, les données/fichiers sont uploadés sur le serveur, et c'est à ce moment là que ton site est vulnérable. Avec un script non sécurisé, quelqu'un pourrait uploader des fichiers n'importe où dans ton site sans que le modérateur s'en aperçoive, et pire encore pour la suppression de dossiers qui pourrait éventuellement casser tout ton site avant que le modérateur ne puisse intervenir.

    Citation Envoyé par marcouni Voir le message
    Cela semble simple comme ça, mais il faut déjà que je digère toutes ces infos car je n'ai plus la vivacité d'esprit d’antan.
    Je comprends, mais ce que je te demande est relativement simple et Php est très convivial contrairement à javascript et plus particulièrement la programmation événementielle qui veut devenir assez vite un casse tête (car on ne sait pas dans quel ordre le code va être exécuté contrairement à Php où l'exécution du script est linéaire, de haut en bas).

    Enfin bref procédons étape par étape.

    Puisque tu affiches la liste des sous-dossiers du répertoire "Photos", tu connais nécessairement l'adresse de ce répertoire pour faire cette liste. Donc rien ne t'empêches de mettre l'adresse de ce répertoire "Photos" dans une variable de session (sans avoir besoin de modifier le reste de ton code).

    Cette variable de session que tu peux nommer par exemple "dir_photo" en faisant $_SESSION['dir_photo']="adresse du répertoire Photos"; sera utilisée à la fois dans le script d'upload et dans le formulaire du script "UploadAjaxABCI_Redimensions_Album.php" pour fabriquer la liste des options du sélecteur d'album. Si tu regardes le code source de ce fichier tu peux voir à la ligne 27 : $repertoire_destination = 'Album_Photo/' qu'il suffira de modifier en faisant $repertoire_destination = $_SESSION['dir_photo'];.

    Et puis c'est tout

    C'est pour cela que je dis que ce fichier d'exemple serait sans doute le plus approprié à tes besoins, car il y a très peu de travail à faire pour l'utiliser et il possède déjà toutes les fonctionnalités nécessaires. Il y a juste quelques modifications javascript nécessaires si tu veux l'utiliser via une iframe pour redéfinir dynamiquement la hauteur de l'iframe mais je me chargerai de ces modifications pour faire un exemple.

    Au final, si le fonctionnement de ce fichier d'exemple correspond de près à tes besoins (on pourrait éventuellement l'aménager), de ton côté tu n'auras simplement qu'à définir une variable de session. La seule difficulté pour les débutants est qu'ils oublient parfois de déclarer session_start(); au début de leur script Php (et dans ce cas elles ne fonctionnent pas), donc c'est plutôt facile, non ?

    Si tu préfères le fichier d'exemple que tu utilisais initialement soit "Upload-Ajax-ABCI /UploadAjaxABCI_Traitements_Images.php", il n'en reste pas moins qu'il sera sécurisé uniquement si tu définis une variable de session pour enregistrer l'adresse du répertoire "Photos" donc de ton côté c'est idem, il faut à minima que tu apprennes à utiliser des variables de session (et c'est vraiment pas compliqué).

    Donc voilà fais ton choix, apprends les bases pour les variables de session et c'est tout.

    Pour le reste si tu as besoin de conseil pour supprimer des dossiers de manière sécurisée, tu pourras ouvrir un autre sujet dans le forum Php (car cela n'a rien à voir avec l'upload de fichiers).

  15. #275
    Membre à l'essai
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2022
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2022
    Messages : 15
    Points : 18
    Points
    18
    Par défaut
    OK je m'y attache ...

    Pour l'élément déclencheur pour recharger ma page quand tous les téléchargements sont terminés, y a t'il une solution ?

    @+

  16. #276
    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
    Oui toujours avec les fonctions évènementielles, mais il faudra me dire le fichier d'exemple que tu as choisi pour que je te donne un exemple complet qui comprendra à la fois le rechargement de ta page et le redimensionnement de l'iframe.

    Juste un détail, pour une meilleure compatibilité avec les scripts existants, l'adresse du répertoire photo (que tu enregistreras dans $_SESSION['dir_photo'] doit comporter un slash final, soit par exemple 'PHOTOS/' (s'il n'y est pas, ajoutes-le). Par ailleurs étant donné que cette adresse sera utilisée par le script qui contient le formulaire de téléchargement, elle devra être définie par rapport à ce script de formulaire. Dans le cas où ton fichier qui contient l'iframe et le script de formulaire sont au même niveau dans le même répertoire, cette adresse sera identique, sinon il faudra l'adapter en conséquence.

  17. #277
    Membre à l'essai
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2022
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2022
    Messages : 15
    Points : 18
    Points
    18
    Par défaut
    Salut,

    Génial les sessions,
    En faisant mes tests sur mon serveur local ça marche hyper bien.
    mais sur OVH c'est à s'arracher les cheveux ! on dirait que l'i-frame forme une barrière infranchissable.

    A l'ouverture de la page :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    session_start();
    $id_session = session_id();
       $stat = session_status();
       $msg = "Current Session Status: ";
       $msg .= $stat;
     echo $msg;
    Affiche :
    Current Session Status: 1
    (qui correspond à "_NONE")

    Il va falloir que je me passe de l'i-frame ?, mais à remplacer par quoi ?

    @+

  18. #278
    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,

    Il n'y a pas de problème particulier avec les sessions chez OVH, ni avec les sessions dans les iFrame tant que l'iFrame et le script source (inclus depuis l'iFrame) sont sur le même nom de domaine. Les variables de sessions sont accessibles sur tous les scripts qui sont sur le même nom de domaine de ton serveur (je précise cela car tu peux aussi avoir plusieurs nom de domaines/sites sur un même serveur).

    Pourquoi la première ligne est vide ? Et je ne vois pas le tag d'ouverture php <?php. Ce qui peut gêner sur un serveur en production c'est qu'il cache les erreurs. Pour les faire afficher, et uniquement durant la phase développement, tu peux écrire en haut de ton script php:
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <?php
    error_reporting(E_ERROR | E_WARNING | E_PARSE);
    ini_set('display_errors', 1);
    //...

    Pour le reste tu ne m'as toujours pas répondu sur l'exemple de formulaire que tu veux utiliser. Celui de création d'album qui permet de créer des nouveaux album et de faire la mise à jour des autres albums du répertoire Photos, ou celui qui fait simplement les redimensionnements ? Réponds-moi s'il te plait, car d'une part, tant qu'à faire des essais, autant partir sur un script fonctionnel que tu pourras adapter, d'autre part c'est frustrant de ne pas avoir de réponse de la part de quelqu'un que l'on veut aider, et enfin je vais bientôt avoir un gros développement à faire pour le travail et je n'aurai plus la possibilité de passer du temps pour adapter ce script à tes besoins.

  19. #279
    Membre à l'essai
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2022
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2022
    Messages : 15
    Points : 18
    Points
    18
    Par défaut
    Salut

    Merci pour le script de gestion des erreurs, ça m'a permis de déboguer et tout fonctionne correctement !

    Dans la mesure du possible je vais utiliser au maximum les sessions.

    Pour le moment comme je dois redimensionner les photos je vais utiliser "UploadAjaxABCI_Traitements_Images" et pour les vidéos "UploadAjaxABCI" (mais que le formulaire vidéo)

    Pour la partie Album je verrai plus tard.

    Désolé pour le dérangement.

    @+

  20. #280
    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,

    Ce n'est pas que tu me dérange, mais quand on se fait aider sur un forum informatique, il est important/nécessaire de répondre aux aidants. S'ils posent une question c'est qu'ils leur manque des éléments pour répondre de façon la plus appropriée, et suivant le contexte, les réponses peuvent être très différentes. Bref sans les informations nécessaires, le sujet peut s'éterniser indéfiniment et l'on fini par perdre patience. Dans mon cas, même principe, c'était pour pouvoir mieux organiser mon travail pour te fournir une réponse la mieux adaptée à tes besoins et éviter d'y revenir trop longtemps. Donc ne prends pas ombrage de ma remarque, c'est juste du bon sens, il faut ménager les bénévoles qui par ailleurs doivent aussi travailler pour faire bouillir la marmite

    Bon sinon j'ai bien avancé, tout fonctionne mais j'aurais besoin, toujours pour éviter de trop nombreux aller-retours, que tu me montre le code qui génère l'affichage des sous-dossiers du répertoire Photos, tel que tu le montre en image dans ton précédent message. Je n'ai pas besoin du code de toute la page mais uniquement du code qui génère la boucle d'affichage de tes sous-dossiers, théoriquement cela commence par un code php avec foreach ou while. C'est le code initial, AVANT l'insertion de l'iframe qui m'intéresse. Et au pire si tu ne vois pas comment la boucle est construire montres-moi tout le code de cette page.

+ Répondre à la discussion
Cette discussion est résolue.

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