Javascript Blob函数未下载二进制内容
此javascript代码不下载实际文件,而是将URL的路径+文件名放入名为requestRouter_amd64.msi的文件的内容中:Javascript Blob函数未下载二进制内容,javascript,Javascript,此javascript代码不下载实际文件,而是将URL的路径+文件名放入名为requestRouter_amd64.msi的文件的内容中: <p> <script type = "text/javascript"> async function downloadFile(filePathAndName, fileDataContentType, fileName) { try { fileDataContentTy
<p>
<script type = "text/javascript">
async function downloadFile(filePathAndName, fileDataContentType, fileName) {
try {
fileDataContentType = "octet/stream"
const blob = new Blob([filePathAndName], {
type: fileDataContentType
});
const link = document.createElement('a');
link.href = window.URL.createObjectURL(blob);
link.download = fileName;
link.click();
} catch (error) {}
}
downloadFile("https://download.microsoft.com/download/E/9/8/E9849D6A-020E-47E4-9FD0-A023E99B54EB/requestRouter_amd64.msi", "application/zip", "requestRouter_amd64.msi");
</script>
</p>
异步函数下载文件(filePathAndName、fileDataContentType、fileName){
试一试{
fileDataContentType=“八位字节/流”
const blob=新blob([filePathAndName]{
类型:fileDataContentType
});
const link=document.createElement('a');
link.href=window.URL.createObjectURL(blob);
link.download=文件名;
link.click();
}捕获(错误){}
}
下载文件(“https://download.microsoft.com/download/E/9/8/E9849D6A-020E-47E4-9FD0-A023E99B54EB/requestRouter_amd64.msi“,”应用程序/zip“,”请求路由器_amd64.msi“;
我还尝试了fileDataContentType的“application/zip”,但结果相同。据我所见,blob会消耗客户端内存。因此,我遵循上一次输入的解决方案,通过流下载文件。尽管我没有使用CSS来移动链接,但工作起来就像是一种享受。据我所见,blob会消耗客户端内存。因此,我遵循上一次输入的解决方案,通过流下载文件。尽管我没有使用CSS来移动链接,但它的工作方式很好。这就是
Blob
构造函数所做的。它实际上不进行任何网络交互。您需要使用fetch
或XMLHttpRequest
将文件内容下载为字节,然后将字节数组传递给Blob
构造函数。这是否回答了您的问题?我希望,我只是不知道,在这个链接中,在选项1和选项2的行打开(“获取”,它们有requestUrl。requestUrl应该用文件的完整url来填充吗?比如?如果是这样,它是用单引号还是双引号括起来的?只需传递requestUrl的filePathAndName
。你的意思是我把xhr代码放在我的函数downloadFile中了吗?这就是Blob
构造函数所做的。它实际上没有任何作用工作交互。您需要使用fetch
或XMLHttpRequest
将文件内容下载为字节,然后将字节数组传递给Blob
构造函数。这是否回答了您的问题?我希望,我只是不知道,在该链接中,在打开的行(“GET”)的选项1和2中是什么,它们有requestUrl。requestUrl应该用文件的完整url填写吗?比如?如果是,它是用单引号还是双引号括起来的?只需传递requestUrl的filePathAndName
。你的意思是我把xhr代码放进了我的函数下载文件中?