2013-06-26 4 views
2

Voici mon code pour télécharger les fichiers sur mon serveur.Comment accéder à la réponse JSON

$(function() { 
$('#phy_fileupload').fileupload({ 
    autoUpload: true, 
    add: function (e, data) { 
     $('body').append('<p class="upl">Uploading...</p>') 
     data.submit(); 
    }, 
    progressall: function (e, data) { 
     var progress = parseInt(data.loaded/data.total * 100, 10); 
     $('#phy_progress .bar').css(
      'width', 
      progress + '%' 
     ); 
    }, 
    done: function (e, data) { 
     $.each(data.files, function (index, file) { 
      $('.upl').remove(); 
       $('<p/>').text(file.name).appendTo("#phy_files"); 
     }); 
    } 
}); 
}); 

Voici le code HTML

<div id="phy_progress"> 
    <div class="bar" style="width: 0%;"></div> 
</div> 
               <input id="phy_fileupload" type="file" name="files[]" data-url="<?php echo site_url('admin/upload/'); ?>" multiple> 

<div class="files" id="phy_files"></div> 

Il fonctionne très bien, télécharge l'image et envoyer JSON en réponse que je peux voir dans Firebug.

Voici la réponse d'un fichier transféré.

{"files":[{"name":"2013-06-20_1235UQn5gm5SRUPzbA.png","size":29381,"url":"http:\/\/files\/2013-06-20_1235UQn5gm5SRUPzbA.png","thumbnail_url":"http:\/\/files\/thumbnail\/2013-06-20_1235UQn5gm5SRUPzbA.png","delete_url":"http:\/\/localhost\/mark\/?file=2013-06-20_1235UQn5gm5SRUPzbA.png","delete_type":"DELETE"}]} 

Maintenant, la question est qu'il ajoute le nom du fichier dans le div (#phy_files) (c.-à-2013-06-20_1235.png), comment jamais je veux ajouter le nouveau nom de fichier qui a été téléchargé sur le serveur (ie) 2013-06-20_1235UQn5gm5SRUPzbA.png. Maintenant, j'ai passé toute la journée à essayer d'accéder à cette réponse de Json, mais apparemment, soit j'ai regardé la mauvaise fin ou je suis complètement perdu, je n'ai jusqu'à présent aucune idée de comment puis-je accéder à cette réponse.

Toute aide serait vraiment appréciée. S'il vous plaît laissez-moi savoir si vous ne comprenez pas ce que j'ai écrit ici, je suis plus qu'heureux de l'expliquer à nouveau si nécessaire. Je vous remercie.

En bref:

ce que la question est que le fichier en cours de téléchargement est nommé laisser dire « file.png », sur le serveur son nom est changé en « filexyzserdsdf.png », maintenant je veux le nom du fichier de réponse pour être écrit dans le my div (#phy_files), mais il écrit 'file.png' à la place

Répondre

1

maintenant ça devient clair ... ok vous devriez le faire alors:

done: function (e, data) { 
    var res = jQuery.parseJSON(data.result); 
    $.each(res.files, function (index, file) { 
     $('.upl').remove(); 
      $('<p/>').text(file.name).appendTo("#phy_files"); 
    }); 
} 
+0

IL A TRAVAILLÉ :) Merci beaucoup Reyaner. J'apprécie vraiment votre aide :) passé toute la journée sur cela .... mais je peux dire enfin cela a fonctionné :) Merci. –

+0

pas de problème monsieur! :) juste pour expliquer, le résultat est une chaîne. donc vous devez l'analyser en un objet JSON ... selam! – reyaner

+0

Merci pour l'explication. :) –

0

donc si vous conservez les données du journal, que se trouve-t-il dans le journal?

done: function (e, data) { 
console.log(data); 
     $.each(data.files, function (index, file) { 
      $('.upl').remove(); 
       $('<p/>').text(file.name).appendTo("#phy_files"); 
     }); 
    } 
+0

Merci reyaner Voici ce que j'ai après que je CONSOLE.LOG http: // screencast .com/t/DCGI7ThTkg –

+0

ok, et où avez-vous obtenu ceci à partir de: {"files": [{"name": "2013-06-20_1235UQn5gm5SRUPzbA.png" .... dans votre message.? dans votre image. le nom de fichier est: 2013-06-20_1235.png ... – reyaner

+0

oui le fichier que j'ai téléchargé a un nom: 2013-06-20_1235.png. Mais le script du serveur change le nom du fichier téléchargé et crée un json qui est ce -> {"files": [{"name": "2013-06-20_1235UQn5gm5SRUPzbA.png" .. dans notre réponse. –

Questions connexes