2017-09-05 1 views
0

La réponse est de retourner le contenu du fichier au navigateur. Mais, classé ne se passe pas. Voici le code:Django/Sencha - HTTPResponse FIle download Ne fonctionne pas

Django:

  file2 = open(os.path.join(filename), 'rb') 
     response = HttpResponse(FileWrapper(file2),content_type='application/force-download') 
     response['Content-Disposition'] = 'attachment; filename=test.c' 
     file2.close() 

Sencha:

   xtype: 'button', 
       text: 'Generate Code', 
       tooltip: 'Generate Code', 
       disabled: true, 
       itemId: 'generatecode', 
       listeners: { 
        click: { 
         fn: me.getController().onGenCodeClick, 
         scope: me.getController() 
        } 
        } 

    onGenCodeClick: function() { 

    var me = this, 
     view = me.getView(); 
     url = www_paths.backendURL + 'main/test/'; 

     Ext.Ajax.request({ 
      url: www_paths.backendURL + 'main/gencode/', 
      method: 'GET', 

      success: function (response, opts) { 
       Ext.core.DomHelper.append(document.body, { 
        tag : 'iframe', 
        frameBorder : 0, 
        width : 0, 
        height : 0, 
        css : 'display:none;visibility:hidden;height:0px;', 
        src : url 
       }); 
      }, 
    }); 

Dans le débogage du navigateur, onglet Réseau:

General: 
    Request Method:GET 
    Status Code:200 OK 
    Remote Address:127.0.0.1:8001 
    Referrer Policy:no-referrer-when-downgrade 

Headers: 
    Access-Control-Allow-Origin:* 
    Allow:GET, HEAD, OPTIONS 
    Content-Disposition:attachment; filename="pm_config_target_pbs_ram.c" 
    Content-Encoding:gzip 
    Content-Length:19210 
    Content-Type:application/force-download 
    Date:Tue, 05 Sep 2017 19:12:29 GMT 
    Server:WSGIServer/0.2 CPython/3.4.0 
    Vary:Accept, Cookie, Accept-Encoding 
    X-Frame-Options:SAMEORIGIN 

En réponse et Aperçu, i » m voir le contenu du fichier à télécharger. Mais je ne sais pas pourquoi je ne vois pas de téléchargement de fichier.

Répondre

0

Vous devez fournir votre code d'affichage complet, mais je pense que le problème pourrait être que vous fermez votre fichier avant de renvoyer votre réponse.

+0

Ceci est l'intégralité de mon code. Je veux juste un téléchargement de base fonctionnant sur ma page. file2 = ouvert (r'c: \ dropbox \ test.txt ',' rb ') response = HttpResponse (FileWrapper (fichier2), content_type =' application/téléchargement forcé ') response [' Content-Disposition '] = 'pièce jointe; filename = test.c ' file2.close() retourner la réponse – aman0446

+0

Vous devriez essayer de supprimer ce fichier2.close(), puis faites le moi savoir. –

+0

désolé, j'ai oublié de mentionner. J'ai essayé ça aussi. toujours pareil. – aman0446