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

jQuery Discussion :

Lire le contenu d'un fichier


Sujet :

jQuery

  1. #1
    Membre éprouvé
    Inscrit en
    Mars 2008
    Messages
    1 123
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 1 123
    Par défaut Lire le contenu d'un fichier
    Bonsoir
    je voulais récupérer un fichier avec jquery
    voici mon code:
    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
     file_data = $('#scan').val();
    var  form_data = new FormData();                  
    form_data.append('file', file_data);
     
      $.ajax({
            url: 'save.php', 
            dataType: 'text',  
            cache: false,
            contentType: false,
            processData: false,
            data: form_data,                         
            type: 'post',
            success: function(data){
                alert(data); // display response from the PHP script, if any
            }, error : function(XMLHttpRequest, textStatus, errorThrown) {alert(errorThrown)   }
         });
    Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <div>
    <input type="file"    id="scan" name="scan" accept="application/pdf" ><br>
    </div>
    <div>
    <input type="submit" value="Valider" disabled name="enregistrer" id="enregistrer">
    </div>

    ma page save.php
    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    echo $_FILES['file']['name'];

    mais ça ne donne rien

  2. #2
    Membre Expert
    Avatar de badaze
    Homme Profil pro
    Chef de projets info
    Inscrit en
    Septembre 2002
    Messages
    1 412
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets info
    Secteur : Transports

    Informations forums :
    Inscription : Septembre 2002
    Messages : 1 412
    Par défaut
    En substance il y a une ligne à modifier => var file_data = $('#scan')[0].files[0]; et pas la peine de mettre un bouton type submit.


    Code html : 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
    <!DOCTYPE html>
    <html>
    <head>
      <meta charset="utf-8">
      <title>Date</title>
      ---- chargement bib jquery ici ----
     
      <script>
     function send()
     {
     
       var  file_data = $('#scan')[0].files[0];
       var  form_data = new FormData();                  
       form_data.append('file',file_data); 
       
       $.ajax({
       url: 'save.php', 
       dataType: 'text', 
       cache: false,
       contentType: false,
       processData: false,
       data: form_data,                         
       type: 'post',
       success: function(data){
        alert(data); // display response from the PHP script, if any
       }, error : function(XMLHttpRequest, textStatus, errorThrown) {alert(errorThrown)   }
       });  
       return false;
     }
      
      </script>
     
    </head>
     
    <body>
    <div>
    <input type="file" id="scan" name="scan" accept="application/pdf" ><br>
    </div>
    <div>
    <input type="button" value="Valider" name="enregistrer" id="enregistrer" onclick="send()">
    </div>
     
    <script>
    </script> 
     
    </body>
    </html>

  3. #3
    Membre éprouvé
    Inscrit en
    Mars 2008
    Messages
    1 123
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 1 123
    Par défaut
    le problème est réglé mais quand je fais le upload de mon fichier et je l'envoi à ma page save.php

    si j'ajoute un echo à la fin de ma page save.php le echo n'est pas pris en considération pour envoyer une variable ) ma page principale et même si je fais une redirection dans ma page save.php ça ne marche pas

  4. #4
    Membre Expert
    Avatar de badaze
    Homme Profil pro
    Chef de projets info
    Inscrit en
    Septembre 2002
    Messages
    1 412
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets info
    Secteur : Transports

    Informations forums :
    Inscription : Septembre 2002
    Messages : 1 412
    Par défaut
    Comme toujours... il faut poster le code.

  5. #5
    Expert confirmé

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 418
    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 418
    Par défaut
    Ton fichier est peut-être trop gros ?

    L'upload de fichier est vite compliqué (demande beaucoup de temps) si l'on veut avoir un maximum de possibilités et gérer toutes les erreurs. Tu peux utiliser cette solution d'upload qui utilise jQuery et Php.

    Elle permet de surpasser les limitation serveur de php (taille et nombre de fichiers). Il y a des retours d'information en temps réel et tu pourras ajouter tous les champs que tu veux dans le formulaire, y compris des champs spécifiques aux fichiers dans un upload multiple pour faire un système de notation ou ajouter des légendes pour chaque fichier par exemple. Le dossier proposé en téléchargement est pré configuré et permet de faire les premiers tests, dès que tu l'aura dézippé et posé sur ton serveur, avec une quinzaine d'exemples directement fonctionnels. Il y a aussi un tuto, un mode d'emploi et la possibilité d'utiliser le forum pour poser des questions en cas de besoin.

  6. #6
    Membre éprouvé
    Inscrit en
    Mars 2008
    Messages
    1 123
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 1 123
    Par défaut
    voici mon code:
    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
     
    function save() // Enregistrer l'ordonnance   Appel fichier PHP
    	{
     
     
    		var fd = new FormData(this);
    		fd.append('file',$('#scan')[0].files[0]);
     
     
    		$.ajax({ 
    			dataType: 'text',  // what to expect back from the PHP script, if anything
    			cache: false,
    			contentType: false,
    			processData: false,
                type : 'POST', 
    			url : 'save.php', 
    			data: fd, 
    			success : function(data) 
    			{
    				alert(1);
    			}, 
    			error: function (response) { alert(2);  }
    		});
    	}
    ma page save.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    if(isset($_FILES['file'])) 
    	{
    		if ( 0 < $_FILES['file']['error'] ) {  $doc="";}
    		else 
    		{ 
    			$doc='Scan/' ;
     
    			move_uploaded_file($_FILES['file']['tmp_name'],$doc);  
    		}
    	} 
    	else {  $doc="";}
    // un autre traitement dans la BDD
    quand je fais le upload de mon fichier le traitement dans ma base de données se fait normalement mais en retour ça va dans alert(2) (ERROR de ma fonction AJAX)
    si je ne fait aucun upload le traitement se fait normalement ey en retour ça va dans alert(1) (SUCCESS de ma fonction AJAX)

  7. #7
    Expert confirmé

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 418
    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 418
    Par défaut
    Utilise la console du navigateur (F12) et l'onglet "réseau" pour voir si les données sont bien envoyées. Tu devrais voir un tas de code bizarre dans le post d'envoi et l'onglet "paramètres" qui représente en fait la composition du fichier. Cela te permettra aussi de regarder le retour dans l'onglet "reponse", il y a peut-être des erreurs dans ton code php.

    Mais encore une fois si ton fichier est trop gros par rapport à la configuration du serveur ça ne passera pas et dans ce cas il faudra utiliser la classe ci-dessus (ou une autre) car la fragmentation de fichiers est trop longue à expliquer à un débutant. Ou sinon (toujours si le fichier est trop gros et que tu n'utilises pas une classe qui permet la fragmentation des fichiers) reste la possibilité de modifier les valeurs "upload_max_filesize" et "post_max_size" de php mais cela demande d'avoir la main sur le serveur et ce n'est pas possible sur les serveurs mutualisés.

  8. #8
    Membre Expert
    Avatar de badaze
    Homme Profil pro
    Chef de projets info
    Inscrit en
    Septembre 2002
    Messages
    1 412
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets info
    Secteur : Transports

    Informations forums :
    Inscription : Septembre 2002
    Messages : 1 412
    Par défaut
    Quoi qu'il en soit pour que l'upload fonctionne (au moins avec les petits documents).

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
       $doc='Scan/' ;
       $name = basename($_FILES["file"]["name"]);
       move_uploaded_file($_FILES['file']['tmp_name'],"$doc$name");

    PS : La manière dont tu écrits les conditions est difficile à lire.

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

Discussions similaires

  1. Lire le contenu d'un fichier PDF
    Par skywaukers dans le forum Delphi
    Réponses: 6
    Dernier message: 18/07/2006, 12h01
  2. Comment lire le contenu d'un fichier ?
    Par AsmCode dans le forum VB 6 et antérieur
    Réponses: 13
    Dernier message: 24/11/2005, 08h17
  3. [FPDF] Lire le contenu d'un fichier PDF, possible ?
    Par Mister Nono dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 06/11/2005, 18h47
  4. lire le contenu d'un fichier
    Par rootdaoud dans le forum Langage
    Réponses: 19
    Dernier message: 01/09/2005, 17h39
  5. [Fichier] Lire le contenu d'un fichier
    Par bart64 dans le forum Entrée/Sortie
    Réponses: 6
    Dernier message: 19/09/2004, 18h18

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