【问题标题】:Saving file inside .rar (with or without password)将文件保存在 .rar 中(带或不带密码)
【发布时间】:2016-02-10 20:08:40
【问题描述】:

我有这个Save as CSV 按钮,它可以将我的表格保存到一个完全正常工作的CSV 文件中。但是我怎样才能自动将这个CSV 文件放入带有密码的.rar 文件中呢?所以基本上,我希望我的CSV 文件在保存/导出数据时位于.rar 内。如果可能,如何在.rar 文件中添加密码?

HTML:

<a class="export"> // Export button
    <i class="fa fa-file-text-o">

    </i>
    Save as CSV
</a> <br>
CSV Format: <br><br>
<div id="dvData"> // Data to CSV/Txt file
    <table class="table table-bordered table-striped table-condensed sortable" id="table2" style="width: 50%;">
        <tr>
            <th>Employee ID</th>
            <th>Time</th>
            <th>Action</th>
        </tr>
        <tr>
            <td>Data 1</td>
            <td>Data 2</td>
            <td>Data 3</td>
        </tr>
    </table>
</div>

JavaScript:

        $(document).ready(function() {
            function exportTableToCSV($table, filename) {
                var $rows = $table.find('tr:has(td):visible'),
                    tmpColDelim = String.fromCharCode(11),
                    tmpRowDelim = String.fromCharCode(0),
                    colDelim = ' ',
                    rowDelim = '\r\n',
                    csv = '' + $rows.map(function(i, row) {
                        var $row = $(row),
                            $cols = $row.find('td');
                        return $cols.map(function(j, col) {
                            var $col = $(col),
                                text = $col.text();
                            return text.replace(/"/g, '');
                        }).get().join(tmpColDelim);
                    }).get().join(tmpRowDelim)
                        .split(tmpRowDelim).join(rowDelim)
                        .split(tmpColDelim).join(colDelim) + '',
                    csvData = 'data:application/csv;charset=utf-8,' + encodeURIComponent(csv);

                $(this)
                    .attr({
                    'download': filename,
                        'href': csvData,
                        'target': '_blank'
                });
            }

            $(".export").on('click', function(event) {
                exportTableToCSV.apply(this, [$('#dvData > table'), 'dtr.csv']);
            });
        });

【问题讨论】:

    标签: javascript rar


    【解决方案1】:

    我知道在 JavaScript 中 rar 的唯一实现是 https://github.com/43081j/rar.js/ 并且似乎不支持加密。如果您需要一种可移植的压缩格式,您可以使用 ZIP 来代替 https://gildas-lormeau.github.io/zip.js/https://stuk.github.io/jszip/ 的两个实现(后者似乎更易于使用),但据我所知,两者都不支持加密。

    我只会压缩​​文件并使用例如:AES http://point-at-infinity.org/jsaes/(代码是 GPL3,但这对 JavaScript 来说不是什么大问题,尤其是如果你只是使用它)并按此顺序进行加密。 https://www.aescrypt.com/download/ 处的 AES 加密/解密程序(当然有源代码!),但在例如:Java(许多示例可在线找到)中执行此操作非常简单

    抱歉,这是今天的最新技术,明天可能会改变,甚至在我写它的时候可能已经改变了——我在这方面有点慢。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-10-24
      • 2012-04-15
      • 2013-03-10
      • 2011-09-03
      • 2020-09-03
      • 2023-03-26
      • 2011-09-06
      • 1970-01-01
      相关资源
      最近更新 更多