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.
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
Vous devriez essayer de supprimer ce fichier2.close(), puis faites le moi savoir. –
désolé, j'ai oublié de mentionner. J'ai essayé ça aussi. toujours pareil. – aman0446