将生成的csv文件从angularjs'directive'上传到远程服务器

时间:2018-09-12 12:37:16

标签: c# angularjs-directive angularjs-scope ftpwebrequest

我有此应用程序,可以通过单击“下载”按钮将csv文件下载到本地计算机。该指令从前端用户界面上的html表中检索数据。

现在,我需要直接通过ftp将文件发送到远程服务器,而不是将其下载到本地计算机。 我研究了一些工作示例,说明如何从本地计算机浏览文件并上传,但是我可以直接上传一个文件。

下面是我的代码。

  • HTML

     <button class="btn btn-danger" export-to-csv>Download Csv</button>
    
  • App.js代码

         var App = angular.module('App', ['ngRoute', 'ui.bootstrap', 
           'chart.js' ]);
           // used to downlod Csv file
           var csvuploadfle;
           App.directive('exportToCsv', function () {   
           return {
           restrict: 'A',
    
        link: function (scope, element, attrs) {
            var el = element[0];
            element.bind('click', function (e) {
                var table = e.target.nextElementSibling;
                var csvString = '';
                for (var i = 0; i < table.rows.length; i++) {
                    var rowData = table.rows[i].cells;
                    for (var j = 2; j < rowData.length - 1; j++)
                    {
                        csvString = csvString + rowData[j].innerHTML + ",";
                    }
                    csvString = csvString.substring(0, csvString.length - 1);
                    csvString = csvString + "\n";
                }
                csvString = csvString.substring(0, csvString.length - 1);
                var a = $('<a/>', {
                    style: 'display:none',
                    href: 'data:application/octet-stream;base64,' + btoa(csvString),
                    download: 'Sample.csv'
                }).appendTo('body')
                a[0].click()
                a.remove();
                csvuploadfle = a;                
            });           
        }       
    }
    //code to upload to server
    

    });

从上面的代码中,文件被保存为本地计算机上的“ Sample.csv”。那就是我要通过单击“下载Csv”按钮直接上传到远程服务器的文件

我愿意提供有关该问题的进一步说明

亲切问候

0 个答案:

没有答案