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. #21
    Nouveau Candidat au Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2014
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Octobre 2014
    Messages : 1
    Points : 1
    Points
    1
    Par défaut télécharger la version 2.2
    Bonjour,

    Le lien pour télécharger la version 2.2 ne marche pas. Est-ce possible d'avoir un autre lien de téléchargement ?

    Merci

  2. #22
    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 apparemment, le système de téléchargement du site est en panne générale et l'on ne peut télécharger aucun fichier.
    Si c'est urgent tu peux m'envoyer ton adresse email et je t'enverrai le dossier des fichiers par mail.

    Un jour je prendrai le temps de déposer le dossier sur Git-Hub pour avoir une solution de secours...

  3. #23
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 418
    Points
    91 418
    Billets dans le blog
    20
    Par défaut
    Ca y est, tout est réparé.
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  4. #24
    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
    Récupération de champs input ajoutés dans le formulaire :

    J'ai un petit problème pouvez-vous m'aidez ? : j'ai rajouté des <input type="text" > avec des accents.
    Lorsque je récupère les $_POST, je me retrouve avec des caractères "éd" --> "%C3%A9d"
    J'ai vérifié tout le code, tout est en utf-8... Est-ce que ça peut venir du UploadAjaxABCI.js qui gère pas l'utf8 ?
    Réponse :

    Non seulement la classe gère l’utf-8 mais en plus cet encodage est indispensable à son fonctionnement.

    Cela dit, pour passer des variables contenant des caractères spéciaux vers le serveur via un formulaire ajax, on emploie la fonction javascript “encodeURIComponent()”.

    La classe fait cela automatiquement et donc en php (dans “UploadAjaxABCI_Php_Load.php” ) on doit simplement utiliser la fonction php de décodage inverse qui est urldecode().

    Pour récupérer un champ input name=”toto” ajouté dans le formulaire, ce sera donc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $toto = urldecode($_POST['toto']) ;
    Faudra que je pense à ajouter cela dans le mode d’emploi...

  5. #25
    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 2.4 en ligne ici

    - Corrige un bug d'affichage du status du téléchargement des fichiers qui affichait parfois (dépendait de la configuration) le status d'échec à la place du status d'arrêt pour un fichier arrêté.

    - Corrige "l'effet de bord" décrit en fin de mode d'emploi dans les versions précédentes.

    Attention : si vous mettez à jour votre code avec cette nouvelle version, le champ de formulaire anciennement nommé name="UpAbci_max_filesize" doit être renommé "UpAbci_max_fragment" (pour une meilleure cohérence). Si vous ne le faites pas vous ne constaterez pas de dysfonctionnement puisque ce champ est facultatif et la classe javascript utilisera alors ses paramètres par défaut (sauvegarde tous les 4 Mo).

    Tous les fichiers ont été mis à jour et un effort a été fait sur la documentation.

    Exemple de base fonctionnel

    1/ Html et configuration javascript
    Permet un upload multiple et affiche pour chaque fichier :
    - son nom
    - la progression graphique
    - le status (en cours, ok, arrêt, ou erreur)
    - un bouton d'arrêt

    Une sauvegarde automatique est effectuée tous les 6291456 = 6 Mo.
    Si le téléchargement est ok, le status s'affichera en gras et couleur verte.
    En fin d'upload d'un fichier, le bouton stop correspondant disparaîtra.

    On pourrait ajouter d'autres informations en ajoutant simplement des lignes html dans le bloc d'information des fichiers (class="UpAbci_infos_upload")... ou en supprimer en supprimant tout aussi simplement les lignes correspondantes.

    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    <?php
    // Utilise le fichier "UploadAjaxABCI_Php_Load_Basique.php" comme destination Ajax
    session_start();
     
    header('Content-type: text/html; charset=UTF-8');
     
    $UpAbci_max_fragment = 6291456;// taille maximale des fragments (doit être inférieur ou égal à la configuration 'upload_max_filesize' du serveur). Les fichiers inférieurs à cette taille n'auront pas de sauvegarde temporaire.
     
    $UpAbci_uniqid_form = hash("sha256",uniqid(rand(), true));
     
    // Jeton de formulaire (token)
    $_SESSION['UploadAjaxABCI'][$UpAbci_uniqid_form] = 1;
    ?>
    <!DOCTYPE html>
    <html lang="fr">
    <head>
    <meta charset="UTF-8" />
    <title>UploadAjaxABCI : upload de fichiers par fragmentation avec Html5 et Ajax/Jquery/Php</title>
    <script src="jquery.js"></script>
    <script src="UploadAjaxABCI.js"></script>
    <script type="text/javascript">
    // Initialisation de la classe javascript (identifiant formulaire, destination ajax, identifiant réponse)
    var up = new UploadAjaxABCI('#form_files','UploadAjaxABCI_Php_Load_Basique.php','#reponse_upload');
     
    // configuration optionnelle (exemple). Voir le fichier "UploadAjaxABCI.php" pour plus d'infos.
    up.config.ajax_delai = 750;// en milliseconde, espacement entre deux requêtes ajax (100 par défaut)
     
    // Démarrage de la fonction, DOM chargé
    $(function(){up.Start()});
    </script>
    </head>
    <body style="font-family:Arial, Helvetica, sans-serif; font-size:1em;width:650px;margin:3em auto 0 auto">
    <div>
    <form id="form_files" action="#" method="post">
     <fieldset style="border:2px solid #000;border-radius:5px;padding:1em">
        <legend>Upload avec configuration de base : nom, progression graphique, status et arrêt</legend>
         <input type="file" name="upload_simple" multiple="multiple" />
         <input type="hidden" value="<?=$UpAbci_max_fragment?>" name="UpAbci_max_fragment" />
         <input type="hidden" value="<?=$UpAbci_uniqid_form?>" name="UpAbci_uniqid_form" />
         <input type="submit" value="Envoyer"/>
     
         <!-- Bloc conteneur du retour d'informations -->
         <div id="reponse_upload">
             <!--information du fichier que l'on affiche uniquement si un fichier est soumis, pour éviter la barre de progression graphique vide si soumission du formulaire sans fichier-->
             <div class="UpAbci_infos_upload" style="display:none;margin-top:1em;" data-upabcicss-submit-file="display:block;">
                - <span class="UpAbci_nom"></span><!-- nom du fichier -->
                <progress class="UpAbci_progressionG"></progress> <!-- progression graphique -->
                <span class="UpAbci_status" data-upabcicss-result-ok="color:green;font-weight:bold">en attente</span><!-- status (important sinon pas de retour d'information en cas d'erreur) -->
                <span class="UpAbci_arret" style="color:red;cursor:pointer;font-size:0.8em;float:right" data-upabcicss-result="display:none">stop</span>
             </div>
         </div>
     </fieldset>
    </form>
    </div>
    </body>
    </html>

    2/ Code php côté serveur (fichier "UploadAjaxABCI_Php_Load_Basique.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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    <?php
    //UploadAjaxABCI_Php_Load_Basique Version 2.4
     
    // Vous devez vérifier l'existence de ces dossiers ou changer ces adresses 
    /*------------------------------------------------------*/
    $destination_upload = "Destination_Upload/";
    $destination_temporaire = "Upload_Temp/";
    /*------------------------------------------------------*/
     
    session_start();
    // Voir le fichier "UploadAjaxABCI_Php_Load.php" pour plus d'exemples détaillés.
     
    // maximise les possibilités de reprise d'upload en cas d'arrêt intempestif.
    ignore_user_abort(true);
     
    header('Content-type: text/html; charset=UTF-8');
     
    // Charge la classe php d'upload
    require 'UploadAjaxABCIServeur.php';
     
    //Initialisation de la classe php (dossier de destination, dossier temporaire)
    $up = new UploadAjaxABCIServeur($destination_upload, $destination_temporaire);
     
    // getUniqidForm() renvoie l'identifiant de formulaire pour la vérification ci-dessous
    $unidid_form = $up->getUniqidForm();
     
    // Il est conseillé de ne pas supprimer cette ligne car c'est le token qui assure que ce script est appelé depuis le formulaire
    if(!(isset($unidid_form,$_SESSION['UploadAjaxABCI'][$unidid_form]))) $up->exitErreurFichier('Identifiant de formulaire non valide. Rafraîchissez la page'); 
     
    $up->Upload();
    // Le processus d'upload est dissocié de celui du transfert, pour permettre de traiter le fichier complet (par exemple pour faire des redimensionnements d'images en php etc.) avant de le déplacer vers son emplacement définitif (c.f "UploadAjaxABCI_Php_Load.php" pour des exemples). 
    $up->Transfert();
     
    $up->exitReponseAjax();
    ?>
    Vous pourrez tester cet exemple (et d'autres) directement après avoir décompressé le dossier proposé en téléchargement puis copier le dossier "Upload-Ajax-ABCI" sur votre serveur.

  6. #26
    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 version 2.4c en ligne ici

    Corrige un bug apparu avec la version 2.2 : un problème pouvait survenir lors de l'utilisation des boutons "arrêt" pour les téléchargements multiples*.

    Les codes javascript on été mis à jour

    * (Pour info pour ceux qui développent avec jquery, le bug venait du fait que je suis passé à l'utilisation de "fail" en remplacement de "error" dans le traitement des erreurs pour les requêtes ajax-jquery. Suivant les circonstances l'emploi de xhr.abort() n'a pas exactement le même comportement dans les deux cas : avec l'ancienne syntaxe, "xhr.abort()" utilisé juste avant le début de la requête ne renvoie pas dans le status "error". Alors qu'avec la nouvelle syntaxe "xhr.abort()" renvoie dans le status "fail" dans tous les cas (ce qui au final est plus logique))

    En cas problème de téléchargement sur ce forum il existe un dépôt des fichiers sur git-hub ici. Néanmoins utilisez de préférence le lien sur developpez.net car le dossier pré configuré fourni permet de faire des premiers tests en moins de 3 minutes (sans aucune configuration nécessaire) et le mode d'emploi au format pdf est formaté et beaucoup plus agréable à lire.

  7. #27
    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,

    Exemple de configuration côté serveur (php) pour permettre plusieurs redimensionnements d'images
    Cet exemple propose les fonctions suivantes :

    - Nettoyage du nom des fichiers
    - Renommage du nom de destination des fichiers pour leur ajouter un suffixe
    - Plusieurs redimensionnements pour chaque image
    - Sauvegarde en option de l'image originale
    - Définition du chmod pour chaque fichier créé ou transféré

    Je joindrai cet exemple dans le dossier de téléchargement de la classe lors d'une prochaine mise à jour

  8. #28
    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 version 2.6 est en ligne depuis quelques jours.

    Côté javascript :
    1/ La classe javascript permet maintenant de transmettre des champs input - ajoutés si nécessaire dans le formulaire d'upload - avec la notation tableau. Auparavant seuls les champs avec la notation simple pouvaient être transmis au serveur.

    2/ L'option de configuration ".config.retour_erreur_fatale_serveur" permet de récupérer les messages d'erreurs fatales provenant du serveur. Permet un débugage plus facile lors de la configuration du script php et également de personnaliser le retour des erreurs fatales provenant d'un éventuel traitement complémentaire à l'upload côté serveur. Par exemple lors d'un dépassement de "memory_limit" ou de "max_execution_time" pour un redimensionnement d'images.

    Côté php :
    Deux fonctions ont été ajoutées dans la classe php :
    1/ SetModeDebug() qui permet de retourner les erreurs fatales du serveur en phase de développement.

    2/ CathErreurServeur() qui permet d'intercepter les erreurs fatales du serveur pour renvoyer un message d'erreur personnalisé côté client. Tous les types d'erreur fatales peuvent être gérés, "memory_limit", "max_execution_time" etc.

    Deux exemples de code pour les redimensions d'images en php (utilisant la bibliothèque GD) on été ajoutés. Ils montrent par ailleurs l'utilisation des fonctions citées ci-dessus.
    1/ Le fichier "UploadAjaxABCI_Php_Load_Redimensions.php" propose un code de base très documenté avec sauvegarde ou non de l'image originale.

    2/ Le fichier "UploadAjaxABCI_Php_Load_Redimensions_optimise.php" est spécifiquement optimisé si l'on fait des redimensionnements successifs avec des hauteurs ET largeurs décroissantes. A ces conditions le gain peut être spectaculaire par rapport au code de base, jusqu'à plusieurs centaines de pourcents en fonction de la résolution de l'image originale et du nombre de redimensionnements. La technique consiste simplement à utiliser la plus grande image redimensionnée pour faire les redimensionnements suivants, plutôt que d'utiliser l'image originale

    Le mode d'emploi a été mis à jour en conséquence et quelques autres points ont été éclaircis

  9. #29
    Expert éminent sénior

    Avatar de vermine
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    6 582
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 6 582
    Points : 79 912
    Points
    79 912
    Par défaut
    Salut,

    Saurais-tu créer une news complète pour présenter ton outil ?

  10. #30
    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 vermine Voir le message
    Salut,

    Saurais-tu créer une news complète pour présenter ton outil ?
    Oui pourquoi pas. Peut-être pas dans l'instant car j'ai du travail mais à terme oui

  11. #31
    Futur Membre du Club
    Homme Profil pro
    Photographe
    Inscrit en
    Mars 2014
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Photographe
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mars 2014
    Messages : 25
    Points : 9
    Points
    9
    Par défaut
    Bonjour ABCIWEB,

    Tu m'as indiqué ton script pour ce que je recherche à faire.
    Je ne suis pas un expert même si j'arrive à me défendre en programmation,
    Je cherche juste à ce que l'on puisse transférer des documents d'un ordinateur (Mac ou PC) vers le serveur FTP du site de l'Association.

    Merci. ;-)

  12. #32
    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,

    Dans ton premier message ici je voyais un formulaire. Je pensais donc que tu voulais transmettre un fichier sur le serveur depuis un formulaire. J'ai peut-être pas tout compris, enfin bon si tu veux des précisions, continues de les poser dans ton message initial.

    EDIT : ... finalement l'utilisation de cette classe était une bonne solution...

  13. #33
    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,

    La classe est maintenant finalisée ici en version 3.0c.


    1/ La fonction de prévisualisation des images a été optimisée
    - Utilisation de "URL.createObjectURL" en remplacement de "FileReader".
    Les gains sont spectaculaires.


    2/ Nouvelles fonctionnalités mises en exemple dans le fichier "UploadAjaxABCI_Custom.php". Ce nouveau fichier propose un module d'upload customisé, responsive design et prêt à l'emploi.
    - Customisation du bouton de sélection des fichiers avec comportement click et drag and drop
    - Fonctions javascript événementielles.
    - Nouveau style événementiel pour réserver un espace de prévisualisation si le fichier est une image


    3/ Correction de 3 petites erreurs
    - Seule la largeur indiquée était prise en compte pour le dimensionnement des images de prévisualisation, la hauteur était proportionnelle mais ne pouvait pas être paramétrée individuellement.
    - La fonction de redimension d'image proposée côté php pouvait dans certains cas effectuer un redimensionnement non souhaité (agrandissement) si l'image source était plus petite que le redimensionnement désiré.
    - Le bouton d'arrêt des fichiers pouvait renvoyer des css événementiels erronés (bien que le fichier soit correctement téléchargé) si on l'utilisait dans les dernières secondes (une à deux/trois secondes) juste avant la fin du téléchargement du fichier.


    4/ Prise en compte et résolution du bug de reset avec IE10

    Ce bug empêchait de pouvoir recharger exactement le(s) même(s) fichier(s) sans rafraichir la page. C'est un cas de figure assez rare habituellement. Mais comme un des avantages de cette solution d'upload est de pouvoir stopper un téléchargement et pouvoir le reprendre par la suite en utilisant la partie sauvegardée, ce cas de figure pouvait se présenter plus souvent et le bug pouvait s'avérer un peu déroutant pour un utilisateur non averti (fallait auparavant impérativement rafraîchir la page avec ce navigateur).

    Tous les fichiers et le mode d'emploi ont été mis à jour


    P.S : Une version 3.0 a été mise en ligne quelques jours. La version 3.0c ajoute le point n°4 (résolution du bug de reset IE10) et une amélioration de la mise en page du fichier "UploadAjaxABCI_Custom.php".

  14. #34
    Membre habitué
    Inscrit en
    Janvier 2008
    Messages
    1 159
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 1 159
    Points : 149
    Points
    149
    Par défaut message Problème dans le transfert du fichier
    Bonjour,

    j'ai installé le module sur mon site en ligne, mais j'ai un message d'erreur il n' arrive pas a la fin de l'upload de ma vidéo:

    Echec du téléchargement. Problème dans le transfert du fichier.

    ma video fait 24 MO et j'ai pris le script du dossier UploadAjaxABCI_Custom.php

    Merci.
    Cdt Elodie Gaborit.



    Edit modération : déplacement du message suivant dans la discussion

    Citation Envoyé par kate59 Voir le message
    bonjour,

    j'ai installé ce module sur mon site :

    http://javascript.developpez.com/tel...-evenementiels

    J'ai changer le dossier de destination mon fichier fait 11Mo

    mais j'ai un message arrive presque a la fin du chargement:

    Echec du téléchargement. Problème dans le transfert du fichier.

    Auriez vous une idée ?

    Serai-je a cause de la taille du fichier ?

    MERCI
    Cdt elodie.

  15. #35
    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,

    Et tu n'as pas été voir quelle erreur générait ce message dans le script serveur (fichier UploadAjaxABCIServeur.php) ?

    Il n'y a que la fonction rename() qui peut générer cette erreur. Elle intervient une fois le fichier totalement uploadé dans le dossier temporaire. Donc il n'y a pas de problème concernant le téléchargement du fichier, c'est juste son transfert vers son emplacement définitif qui pose problème.

    Conclusion : c'est le dossier de destination que tu as indiqué qui pose problème. Soit il n'est pas exact, soit il n'a pas les droits en écriture suffisants. Vérifies que le chemin du dossier est bon d'une part et d'autre part mets des droits 777 sur ce dossier (ou renseignes toi chez ton hébergeur pour connaître les droits minimum qu'il faut attribuer pour écrire dans un dossier).

  16. #36
    Membre habitué
    Inscrit en
    Janvier 2008
    Messages
    1 159
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 1 159
    Points : 149
    Points
    149
    Par défaut
    merci j'ai reussi a regler le probléme maintenant j'ai intégrer sur mon site j'ai mis ceci dans mon header:

    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
     
    <!-- UploadAjaxABCI.js est la version minifiée de UploadAjaxABCI_DEV.js -->
    <script src="js/UploadAjaxABCI.js"></script>
     
    <script type="text/javascript">	
     
    var Upload = new UploadAjaxABCI('#form_upload','Php_Upload/UploadAjaxABCI_Php_Load_Custom.php','.infos_fichiers');
     
    // configuration optionnelle (exemples)
    Upload.config.ajax_delai = 750;// en milliseconde, espacement entre deux requêtes ajax
     
    // Si vous faites un contrôle des extensions, vous devez refaire ce même contrôle côté serveur par sécurité
    //Upload.config.extensions_autorisees = ['jpg','jpeg','png','mp4','avi','mpg','m2ts','mkv','flv','mp3'];
     
    // Attention il conviendrait de baisser (ou mettre à zéro) la valeur ci-dessous pour les smartphones.
    Upload.config.total_max_weight_apercu = 100; // en Mo poids total maximum de toutes les photos. Au delà les vignettes ne seront pas affichées.
     
    // (Les valeurs par défaut sont 90 et 60)
    Upload.config.max_width_apercu = 100; // en pixels, largeur maximale de l'aperçu
    Upload.config.max_height_apercu = 70;// en pixels, hauteur maximale de l'aperçu
     
    // Je désactive l'affichage automatique des vignettes pour attendre la fin de l'ouverture de la boite. J'emploierai plus bas la fonction ".config.img_preview()" pour afficher les vignettes en temps voulu. En mettant true vous observerez directement la différence d'affichage à l'ouverture de la boite (saccades) surtout visible si vous télécharger plusieurs images de plusieurs Mo
    Upload.config.img_preview_auto = false;
     
    // Option pour indiquer un élément html en remplacement du bouton de sélection des fichiers par défaut du navigateur.
    Upload.config.custom_select_file = ".bouton_custom_file";
     
    // Durant le téléchargement des fichiers, applique ces effets sur le bouton d'envoi du formulaire.
    Upload.config.css_submit_upload = "cursor:wait;opacity:0.4";
     
    // Durant le téléchargement des fichiers, applique ces effets le bouton de sélection des fichiers.
    Upload.config.css_file_upload = "cursor:wait;opacity:0.7;color:#333";
     
    // Ici je défini des nouvelles variables dans l'objet ".config". Elle me serviront plus bas dans le code. Cette méthode peut être utilisée pour conserver le même espace de nom et éviter des conflits de variables avec des scripts externes. Cependant, il faut penser impérativement à préfixer le nom des variables avec des caractères suffisamment originaux pour ne pas entrer en conflit avec des variables de configuration internes. Ici j'ai choisi "perso_". 
    Upload.config.perso_form = $("#form_upload");
    Upload.config.perso_infos = Upload.config.perso_form.find(".infos_fichiers");
    Upload.config.perso_select = Upload.config.perso_form.find(".bouton_custom_file");
    Upload.config.perso_select_texte = Upload.config.perso_select.text();
    Upload.config.perso_select_remplacement = "Traitement en cours...";
    Upload.config.perso_slideUp = function(){Upload.config.perso_infos.slideUp(400)};
    Upload.config.perso_fermer_formulaire = $();
     
     
    // Définition d'une fonction javascript événementielle qui sera exécutée à la soumission des fichiers (option ".config.fonction_js_submit_file")
    // Attention d'utiliser "one" (cf doc jquery) et non pas "on" pour lier l'événement onclick car on peut appuyer plusieurs fois successivement sur le bouton de sélection des fichiers (donc la fonction "fonction_js_submit_file" peut être appelée plusieurs fois).
    Upload.config.fonction_js_submit_file = function()
    { 
    	// on ouvre la boite d'information avec un slide d'ouverture (slideDown)
    	Upload.config.perso_infos.slideDown(400, function() 
    	{
    		// Une fois l'ouverture terminée...
    		// Les éléments sont bien dans le DOM et on peut appliquer un slide de fermeture (slideUp) onclick sur le bouton de fermeture
    		Upload.config.perso_fermer_formulaire = Upload.config.perso_form.find(".fermer_formulaire");
     
    		Upload.config.perso_fermer_formulaire.one("click", Upload.config.perso_slideUp) 
     
    	   	// Et on fait afficher les vignettes avec la fonction ".config.img_preview" (qui ne fonctionne que si ".config.img_preview_auto = false" sinon l'affichage est automatique dès la sélection des fichiers)
    		Upload.config.img_preview();
    	});	
    }
     
     
    // Définition d'une fonction javascript événementielle qui sera exécutée à la soumission du formulaire (option ".config.fonction_js_submit")
    Upload.config.fonction_js_submit = function()
    {
    	// Durant l'upload je supprime la possibilité de fermeture pour que le visiteur puisse toujours voir les informations
       Upload.config.perso_fermer_formulaire.off("click");
     
       // Et je change le contenu de l'entête (.bouton_custom_file) en mettant "Traitement en cours..."
       Upload.config.perso_select.text(Upload.config.perso_select_remplacement);
    }
     
     
    // Définition d'une fonction javascript événementielle qui sera exécutée à la fin du traitement du formulaire (option ".config.fonction_js_fin")  
    Upload.config.fonction_js_fin = function()
    { 
    	// L'upload terminé je remet le comportement de fermeture sur le bouton de fermeture et sur le bouton d'information "Traitement terminé" défini dans le html avec ".fin_traitement"
       	$.each([Upload.config.perso_form.find(".fin_traitement"), Upload.config.perso_fermer_formulaire], function()
    	{
    		$(this).one("click", Upload.config.perso_slideUp)
    	})
       	// Je remet le texte initial 
       	Upload.config.perso_select.text(Upload.config.perso_select_texte);
    }
     
     
    // Modification des messages par défaut de la classe
    Upload.info.status.encours = 'en cours';
    Upload.info.status.arret = 'arrêt';
    Upload.info.status.ok = ""; // Modification de la réponse textuelle du status si téléchargement ok. En mettant vide seules les informations envoyées par php en retour de requête ajax seront s'affichées.
     
    // Démarrage de la fonction, DOM chargé
    $(function(){Upload.Start()});
    </script>
    Et le formulaire dans ma page d'accueil.

    Voila le message d'erreur :
    Connexion non valide ou perdue. Rafraîchissez la page et recharger votre fichier, si celui-ci dispose d'une sauvegarde automatique elle sera utilisée.
    J'ai regarder cela vient du fichier :
    UploadAjaxABCI_Php_Load_Custom.php


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    // Il est conseillé de ne pas supprimer cette ligne car c'est le token qui assure que ce script est appelé depuis le formulaire. Permet également de renvoyer un message en cas de timeout du serveur, connexion perdue ou non valide.
    if(!(isset($unidid_form,$_SESSION['UploadAjaxABCI'][$unidid_form]))) $up->exitErreurFichier("Connexion non valide ou perdue. Rafraîchissez la page et recharger votre fichier, si celui-ci dispose d'une sauvegarde automatique elle sera utilisée.");

    Cela peut venir des session start ?

    MERCI.

  17. #37
    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 kate59 Voir le message
    merci j'ai reussi a regler le probléme maintenant j'ai intégrer sur mon site et
    voila le message d'erreur :
    Connexion non valide ou perdue. Rafraîchissez la page et recharger votre fichier, si celui-ci dispose d'une sauvegarde automatique elle sera utilisée.

    j'ai regarder cela vient du fichier :
    UploadAjaxABCI_Php_Load_Custom.php


    // Il est conseillé de ne pas supprimer cette ligne car c'est le token qui assure que ce script est appelé depuis le formulaire. Permet également de renvoyer un message en cas de timeout du serveur, connexion perdue ou non valide.
    if(!(isset($unidid_form,$_SESSION['UploadAjaxABCI'][$unidid_form]))) $up->exitErreurFichier("Connexion non valide ou perdue. Rafraîchissez la page et recharger votre fichier, si celui-ci dispose d'une sauvegarde automatique elle sera utilisée.");

    cela peut venir des session start ?

    MERCI.
    Oui c'est une possibilité puisque cette ligne vérifie la présence d'une variable de session qui a été définie en php dans le script d'upload du formulaire ("UploadAjaxABCI_Custom.php" que tu as mis apparemment dans ta page d'accueil).
    Cette variable de session n'a simplement pas pu être récupérée par le script d'upload côté serveur ("UploadAjaxABCI_Php_Load_Custom.php").
    Cela peut se produire si tu as zapper le code php du script d'upload du formulaire, ou fait une erreur, ou oublié l'input qui transmet cette variable (<input type="hidden" value="<?=$UpAbci_uniqid_form?>" name="UpAbci_uniqid_form" />).

    En cas de modification du script, pense bien à rafraîchir ta page avant de re tester.

    Enfin bon tout à l'heure tu avais franchi cette étape puisque le fichier était téléchargé dans le dossier temporaire. Fais des sauvegardes de tes différentes versions quand tu n'es pas sûr de toi, cela te permettras de voir à quelle étape tu fais l'erreur

    Au passage, tu avais compris (ou presque) qu'il y avait un problème de transmission de la variable de session donc tout le code javascript que tu nous montre n'est d'aucune utilité pour résoudre ton problème

    Après dans l'absolu le script peut fonctionner sans cette ligne qui vérifie la variable de session (que tu pourrais supprimer dans le script "UploadAjaxABCI_Php_Load_Custom.php"), mais c'est vivement conseiller de la garder et de faire en sorte qu'elle puisse fonctionner (donc de réparer ton code ).

    EDIT : Sinon comme indiqué dans les notes en bas de page du mode d'emploi et aussi dans le fichier "Installation_debug.html", tu peux obtenir ce message si la taille des fragments est trop grande. Normalement le fichier d'upload que tu utilise ("UploadAjaxABCI_Custom.php"), contrôle la valeur "upload_max_filesize" du serveur pour adapter la taille du fragment. Sauf si tu as supprimé ce contrôle, ou si ton serveur est mal configuré, cela devrait suffire. Sinon lis ces notes pour les explications et baisse la taille des fragments à 1Mo pour les augmenter ensuite progressivement et avoir une valeur minimum d'au moins 4Mo si possible. Cela fonctionne avec des tailles inférieures mais cela génère plus de trafic et ralenti l'upload. L'idéal, en prenant en compte une vitesse d'upload adsl standard actuelle, est une taille de fragments vers les 8Mo ce qui permet de faire des sauvegardes automatiques toute les 3 minutes environ. Ainsi en cas d'arrêt (volontaire ou non) le visiteur n'aura perdu au maximum que 3 minutes de téléchargement.

  18. #38
    Membre habitué
    Inscrit en
    Janvier 2008
    Messages
    1 159
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 1 159
    Points : 149
    Points
    149
    Par défaut
    merci j'ai reussi maintenant enregistrer le nom de la video dans ma bdd d'habitude je regarde que le bouton envoyé a bien ete soumis avec un post mais la comment faire.

    merci.

  19. #39
    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
    Si tu as réussi à résoudre les problèmes précédents, tu pourrais indiquer quels problèmes tu avais, même sans rentrer dans les détails ta réponse servirait aux débutants (c'est mieux quand tout le monde participe).

    A part ça si ta dernière question concerne "comment enregistrer le nom de ton fichier en bdd", dans le fichier "UploadAjaxABCI_Php_Load_Custom.php" il y a une ligne
    "// On pourrait enregistrer ici le nom (ou l'adresse) du fichier en bdd
    avec juste au dessus la variable "$nom_final" qui est le nom final du fichier. Je peux pas être beaucoup plus clair, tu fais ta requête ici en te servant du nom du fichier ou du chemin complet si tu veux inclure le dossier.
    Le commentaire se situe au bon endroit où toutes les conditions nécessaires sont remplies donc t'as pas besoin de faire de tests complémentaires.

  20. #40
    Membre habitué
    Inscrit en
    Janvier 2008
    Messages
    1 159
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 1 159
    Points : 149
    Points
    149
    Par défaut
    Bonjour, désolée si je n'ai pas été assez claire. Voilà donc je voudrais entrer dans ma base de données lors de l'envoi du formulaire le titre de la vidéo.

    Qui donnerait d'habitude au dessus du formulaire d'envoi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    If(isset($_POST['Envoyer']) AND isset($_FILES['name']))
    { ma code insertion base de donnée}
    Si le formulaire est soumis et variable files on fait une insertion dans la bdd
    Mais la je ne vois pas comment récupérer les données soumis cote PHP.

    'espère que j'ai mieux expliqué. Je mettrais mon code pour les prochains. Merci.

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 15 PremièrePremière 12345612 ... 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