将文件保存在.rar(带或不带密码)

时间:2015-11-10 02:08:07

标签: javascript rar

我有这个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']);
            });
        });

1 个答案:

答案 0 :(得分: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的问题,特别是如果你只是使用它)并按顺序。 AES en / decryption程序(当然有源代码!)在https://www.aescrypt.com/download/,但在例如:Java(很多例子可以在线找到)中这样做很简单

很抱歉,但这是今天的最新技术,它可能会在明天发生变化,或者在我写作时它甚至可能已经改变了 - 我在这方面有点慢。