Javascript 以64为基数的字符串的字符长度是多少

Javascript 以64为基数的字符串的字符长度是多少,javascript,jquery,base64,exceljs,Javascript,Jquery,Base64,Exceljs,我正在转换客户端上excel导出的缓冲区,需要下载它。我正在将缓冲区转换为一个base 64字符串,然后通过线路发送它,并在控制器的服务器上对其进行解码 excel文档的大小是否有限制 我在网上查过了,但没有确切的答案 // _exportToSpreadsheet is FALSE -> save dialog will open for the "normal" exporting to excel if (_exportToSpreadsheet === true)

我正在转换客户端上excel导出的缓冲区,需要下载它。我正在将缓冲区转换为一个base 64字符串,然后通过线路发送它,并在控制器的服务器上对其进行解码

excel文档的大小是否有限制

我在网上查过了,但没有确切的答案


    // _exportToSpreadsheet is FALSE -> save dialog will open for the "normal" exporting to excel
    if (_exportToSpreadsheet === true) {

        var workbook = new ExcelJS.Workbook();
        var worksheet = workbook.addWorksheet('Main sheet');

        DevExpress.excelExporter.exportDataGrid({
            component: e.component,
            worksheet: worksheet
        }).then(function () {
            workbook.xlsx.writeBuffer().then(function (buffer) {
                // convert to base 64 to pass to the server...
                var base64 = btoa(
                    new Uint8Array(buffer)
                        .reduce((data, byte) => data + String.fromCharCode(byte), '')
                );

                $.ajax({
                    url: 'Spreadsheet/Spreadsheet/SpreadsheetFromDxGrid',
                    dataType: 'json',
                    type: 'POST',
                    data: { spreadsheetData: base64 }, 
                    success: function (data) {
                        window.open(
                            rootPath + 'SpreadSheet/SpreadSheet/SpreadSheet?fileIdentifier=' + data.fileIdentifier,
                            '_blank' // <- This is what makes it open in a new window.
                        );
                    }
                }); 
            });
            });

        // cancel the call since we are going to open in a new window for exporting to dev express spreadsheet
        e.cancel = true;
    }
}
服务器:

        [HttpPost]
        public ActionResult SpreadsheetFromDxGrid(string spreadsheetData)
        {
            string fileIdentifier = Guid.NewGuid().ToString();

            // Convert the buffer array that was generated to a base 64 string back to a byte array
            byte[] spreadsheetDataArray = Convert.FromBase64String(spreadsheetData);

            fileIdentifier = UploadControlHelper.TempFileUpload(fileIdentifier + SharedConstants.ExcelExtension, spreadsheetDataArray);

            // return file identifier to redirect to the spreadsheet controller...
            return Json(new { fileIdentifier });
        }
我只想知道这会在哪里失败,或者是否有更好的方法来做到这一点

        [HttpPost]
        public ActionResult SpreadsheetFromDxGrid(string spreadsheetData)
        {
            string fileIdentifier = Guid.NewGuid().ToString();

            // Convert the buffer array that was generated to a base 64 string back to a byte array
            byte[] spreadsheetDataArray = Convert.FromBase64String(spreadsheetData);

            fileIdentifier = UploadControlHelper.TempFileUpload(fileIdentifier + SharedConstants.ExcelExtension, spreadsheetDataArray);

            // return file identifier to redirect to the spreadsheet controller...
            return Json(new { fileIdentifier });
        }