使用Javascript下载一个视频

Download a fie using Javascript

本文关键字:一个 视频 Javascript 下载 使用      更新时间:2023-09-26

我有JSON数组在客户端呈现在UI。用户希望以文件形式下载内容。如何将内容从客户端发送到服务器并作为文件下载?

我发现POST Ajax请求不允许我们下载文件。我该怎么做呢?

如果内容仅在客户机中可用,则必须将其发送到服务器。试试这样做:

<a id="download_link">Download</a>
$('#download_link').on('click', function(e){
    e.preventDefault();
    window.location = 'my-handler.php?json=' + myJsonString;
});
// or without jQuery
document.getElementById('download_link').onclick = function(){
   window.location = 'my-handler.php?json=' + myJsonString;
};

然后在my-handler.php中强制下载,使用发送到服务器的数据作为文件内容:

// Use equivalent in your server side script if not using PHP
$filename = 'download-'.time().'.json';
header('Content-Type: application/octet-stream');
header('Content-Transfer-Encoding: Binary');
header('Content-disposition: attachment; filename="'.$filename.'"'); 
exit($_GET['json']);

使用此方法,当前窗口不应该被替换,但下载提示应该开始,但您可以在一个新的窗口中打开,如果你喜欢。

这是一个快速而肮脏的解决方案。请注意,这将允许用户输入任何内容并下载文件。至少先验证内容可能是明智的。也可能是内容太大的问题。