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

JavaScript Discussion :

Changer le nom d'un fichier au t�l�chargement


Sujet :

JavaScript

  1. #1
    Membre averti
    Homme Profil pro
    Ing�nieur syst�mes et r�seaux
    Inscrit en
    Mars 2015
    Messages
    23
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 31
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activit� : Ing�nieur syst�mes et r�seaux
    Secteur : High Tech - Produits et services t�l�com et Internet

    Informations forums :
    Inscription : Mars 2015
    Messages : 23
    Par d�faut Changer le nom d'un fichier au t�l�chargement
    Bonjour � tous,

    J'ai cr�� une fonction permettant de sortir un fichier CSV � partir d'un json.
    Ce fichier peut se t�l�charger en cliquant sur un bouton.

    J'aimerais pouvoir changer le nom de ce fichier lors du clic sur le bouton (pour l'instant il s'appelle "t�l�chargement" par d�faut).
    Mon plus gros souci est que l'extension n'est pas affich�e (je voudrais en effet avoir au moins le .csv).

    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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
     
    function JSON2CSV() {
     
      var myjson = "http://*****/get_json_test.php?callback=?";
     
      $('.filter').each(function(i, obj){
         var input = $(obj).find("input")[0];
         myjson += '&'+input.name+'=' + input.value;
      });
     
      $('.display').each(function(i,obj){
         myjson += '&'+$(obj).attr('table')+'|'+$(obj).attr('titre')+'';
      });
     
      $.getJSON(myjson, function(data){
         var line = '';
         var str = '';
            if(data.length != 0){
               $.each(data[0], function(index, valeur){ //Pour chaque colonne
                  var line = '';
                  var value = index;
                  line += value + ';';
                  str += line; //+ '\r\n';
               });
               str = str.slice(0, -1);
               str += '\n';
     
               $.each(data, function(i,ti){
                  $.each(ti, function(index, valeur){
                     var line = '';
                     var valeur = valeur;
                     line += valeur + ';';
                     str += line; // + '\r\n';
                  });
               str = str.slice(0, -1);
               str += '\n';
               }); //End each
            window.open("data:application/str;charset=utf-8;" + encodeURIComponent(str));
            } //End if
      }); //End getJSON
    } //End JSON2CSV
    Sauriez vous ce que je dois changer dans la ligne :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
     window.open("data:application/str;charset=utf-8;" + encodeURIComponent(str));
    afin d'avoir un nom comme "Requ�te.csv" ?

    Merci de votre aide,
    Corentin.

  2. #2
    R�dacteur/Mod�rateur

    Avatar de SpaceFrog
    Homme Profil pro
    D�veloppeur Web Php Mysql Html Javascript CSS Apache - Int�grateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activit� : D�veloppeur Web Php Mysql Html Javascript CSS Apache - Int�grateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par d�faut
    la reponse ne se trouve pas cot� javascript ...
    mais plutot au niveau de ton force download php ...
    Ma page Developpez - Mon Blog Developpez
    Pr�sident du CCMPTP (Comit� Contre le Mot "Probl�me" dans les Titres de Posts)
    Deux r�gles du succ�s: 1) Ne communiquez jamais � quelqu'un tout votre savoir...
    Votre post est r�solu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de D�veloppez !

  3. #3
    Membre averti
    Homme Profil pro
    Ing�nieur syst�mes et r�seaux
    Inscrit en
    Mars 2015
    Messages
    23
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 31
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activit� : Ing�nieur syst�mes et r�seaux
    Secteur : High Tech - Produits et services t�l�com et Internet

    Informations forums :
    Inscription : Mars 2015
    Messages : 23
    Par d�faut
    Ca signifie que je dois effectuer la modification au niveau de mon fichier php ?
    Existe-t-il une solution en javascript afin de ne pas toucher � ce fichier ?
    Merci pour ton aide.

  4. #4
    R�dacteur/Mod�rateur

    Avatar de SpaceFrog
    Homme Profil pro
    D�veloppeur Web Php Mysql Html Javascript CSS Apache - Int�grateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activit� : D�veloppeur Web Php Mysql Html Javascript CSS Apache - Int�grateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par d�faut
    non clairement c'est totalement hors de port�e de javascript
    Ma page Developpez - Mon Blog Developpez
    Pr�sident du CCMPTP (Comit� Contre le Mot "Probl�me" dans les Titres de Posts)
    Deux r�gles du succ�s: 1) Ne communiquez jamais � quelqu'un tout votre savoir...
    Votre post est r�solu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de D�veloppez !

  5. #5
    Mod�rateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par d�faut
    Bah, quand m�me, il y a moyen de cr�er un simple lien invisible <a href="data:text/plain,Hello%20World!" download="salutation.txt"> et de d�clencher un clic dessus par JavaScript.

    Apr�s �a marche vraiment bien que sur les navigateurs qui g�rent l'attribut download, quoi.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  6. #6
    Expert confirm�
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 61
    Localisation : France, Yvelines (�le de France)

    Informations professionnelles :
    Activit� : Urbaniste
    Secteur : Sant�

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Par d�faut
    Citation Envoy� par CocoFlouq Voir le message
    Ca signifie que je dois effectuer la modification au niveau de mon fichier php ?
    Existe-t-il une solution en javascript afin de ne pas toucher � ce fichier ?
    Merci pour ton aide.
    J'avoue que je ne comprends pas l'int�r�t de tout ce truc.
    tu construis un json que tu envois � un php qui en fait un csv
    qui t'est retourn� dans un flux
    que tu lis pour le transformer (l� je ne vois vraiment pas pourquoi) en CSV (alors que le php l'a d�j� transform�.
    que tu place ensuite dans un lien dat: pour le t�l�charger.

    Perso je construit mon json que j'envois � mon php via un form cach� en post
    le php le formate et csv et le retourne en attachement (download)
    c'est fini.

    quant � l'argument je ne veux pas toucher au serveur
    je ne le comprends pas plus
    de toute fa�on ton js est install� sur le serveur donc tu touche au serveur.

    A+JYT

  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
    C'est tellement plus simple au niveau du force download de php qu'on voit pas pourquoi tu te prends la t�te c�t� javascript. D'autant plus que modifier le nom du fichier en javascript pourrait poser des probl�mes de s�curit�.

  8. #8
    Membre exp�riment�

    Homme Profil pro
    �tudiant
    Inscrit en
    F�vrier 2013
    Messages
    119
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Alg�rie

    Informations professionnelles :
    Activit� : �tudiant
    Secteur : High Tech - �lectronique et micro-�lectronique

    Informations forums :
    Inscription : F�vrier 2013
    Messages : 119
    Billets dans le blog
    1
    Par d�faut
    je te donne un exemple vite fait pour faire ca en javascript tu peu l adapter facilement
    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
     
    <html><head>
      <meta http-equiv="content-type" content="text/html; charset=UTF-8">
      <title> exporter csv </title>
    <script type="text/javascript"> 
     function jsonTblCsv(tbl) {
    	 tbl=tbl||[];
    	var ret = '';
    	for (var i = 0; i < tbl.length; i++) {
    		var ligne = '';
    		for (var index in tbl[i]) {
    			if (ligne != '') line += ','
    			ligne += "\""+tbl[i][index]+"\"";
    		}
    		ret += ligne + '\r\n';
    	}
    	return ret;
    }
     
     
     
    function exportCSV(csv,nomFichier)
    {
    	var uri = 'data:text/csv;charset=utf-8,' + escape(csv);
    	var downloadLink = document.createElement("a");
    	if("download" in downloadLink){
    		downloadLink.href = uri;
    		downloadLink.download = nomFichier + ".csv";
    		document.body.appendChild(downloadLink);
    		downloadLink.click();
    		document.body.removeChild(downloadLink);
    	}else{
    		if (/MSIE/gi.test(navigator.userAgent)) {
    			var obj = window.open();
    			obj.document.write('sep=,\r\n' + csv);
    			obj.document.close();
    			obj.document.execCommand('SaveAs', true, nomFichier + ".csv");
    			obj.close();
    		}
     
    	}
    }
     
    function testExportCsv(){
    	var nomFicher=prompt("entrer nom de ficher","test");
    	var testJson=[
    		{nom:"le nom"},
    		{nom:"le prenom"},
    		{nom:"le nom1"},
    		{nom:"le prenom1"} 
    	];
    	var testCsv=jsonTblCsv(testJson);
    	exportCSV(testCsv,nomFicher);
    }
     
    </script>
     
     
    </head>
    <body>
     
    <button onclick="testExportCsv()" >tester export CSV</button>
    </body>
    </html>

Discussions similaires

  1. changer le nom d'un fichier lors de son upload
    Par thaundeadboss dans le forum Langage
    R�ponses: 2
    Dernier message: 24/11/2009, 10h41
  2. R�ponses: 2
    Dernier message: 15/10/2009, 14h30
  3. Changer le nom d'un fichier
    Par Raikko68 dans le forum Macros et VBA Excel
    R�ponses: 1
    Dernier message: 03/10/2008, 03h12
  4. R�ponses: 3
    Dernier message: 14/02/2007, 10h37
  5. [Fichier] changer le nom d'un fichier
    Par karibouxe dans le forum Langage
    R�ponses: 2
    Dernier message: 26/03/2006, 21h10

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