0

extjs 4.1を使ってファイルをダウンロードしたいです。

ファイル名は「wsnDataModel.xml」です。

他の投稿で提案されているすべてのことを試しました:

//function invoked clicking a button
DwDataModel : function(th, h, items) {
    //direct method that build in file in the location calculated below with "certurl" (I've verified)
    Utility.GetDataModel(function(e, z, x) {
        if (z.message) {
            //the server method should give an error message
            Ext.create('AM.view.notification.toast', {
                        title : 'Error',
                        html : z.message,
                        isError : true
                    }).show();
        } else {
            // navigate to get data
            var certurl = 'http://' + window.location.host
                    + '/AdminConsole3/' + e;
            Ext.Ajax.request({
                        method : 'GET',
                        url : 'http://' + window.location.host
                                + '/AdminConsole3/' + e,
                        success : function(response, opts) {
//the following navigate and openthe file in the current browser page.
//I don't want to change the current browser page                               
                       //window.location.href = certurl;
//the same behaviour with
                       //document.location = certurl;


                       //and this don't work at all 
                        window.open(certurl,'download');
                        },
                        failure : function(response, opts) {
                            console
                                    .log('server-side failure with status code '
                                            + response.status);
                            console.log('tried to fetch ' + url);
                        }
                    }, this, [certurl]);
        }
    }, th);
}

「ナビゲーション」は、次のようにアプリケーションをリダイレクトします(アプリケーションをリダイレクトしたくありません):リダイレクト

そして、この画像のようなファイルをダウンロードしたいと思います: ダウンロード

とてもシンプルだと思います。どうやってするか?

ありがとうございました

4

1 に答える 1

2

非常に単純です。これが成功関数です。

success: function (response, opts) {
    var link = document.createElement("a");
    //this gives the name "wsnDataModel.xml"
    var fileName = certurl.substring(certurl.lastIndexOf('/') + 1);
    link.download = fileName;
    link.href = certurl;
    link.click();
}
于 2013-08-21T11:20:31.553 に答える