Kiw*_*iwy 3 javascript php security html5
我不确定问这个问题的地方是否可以随意将我的问题转移到别处或关闭它.
有人告诉我,只有在浏览器上发生拖放等显式事件并为其提供文件句柄时,Javascript才能从磁盘写入和读取.
对于Mega(ex upload),当您单击下载时,您将直接将文件保存到磁盘,而不会被要求保存或安装任何扩展您的浏览器.
它是Javascript还是HTML 5的一个功能,因为在我看来这意味着在这种情况下可怕的安全问题.
编辑1:
所以我的问题是,Mega如何设法在磁盘上写入而不显示您的Save to浏览器对话框弹出并自行确定放置文件的位置
bru*_*ric 11
问题有些模糊,要正确回答,我们可能需要有关您的系统和浏览器供应商/版本的更多信息.Mega使用一些非常酷的东西来处理下载和文件.
他们使用,取决于客户端环境:
使用所有这些方法,直接下载而无需用户干预/授权将依赖于浏览器兼容性.我在Linux上使用Firefox,当我从Mega中选择一个文件并点击下载时,会出现一个对话框,因此,我必须授权下载.但是如果你看看这个screnshot,在'from'字段中你会看到'blob'这个词,这是来自File API W3C规范的Blob对象的标志.
您可以在这个小提琴中看到一个Blob API利用示例并检查Mega的源代码(案例4:Arraybuffer/Blob基于内存,第15,293,324,802行).
window.URL = window.URL || window.webkitURL;
var blobExample = new Blob(['\
<!doctype html>\n\
<html>\n\
<body>Hello from Blob file!</body>\n\
</html>'], {type: 'text/html'});
var blobLink = document.createElement('link');
blobLink.rel = 'html';
blobLink.href = window.URL.createObjectURL(blobExample);
document.body.appendChild(blobLink);
var anchor = document.createElement('a');
anchor.href = window.URL.createObjectURL(blobExample);
anchor.download = 'blob-example.html';
anchor.textContent = 'Download the binary large object';
document.body.appendChild(anchor);
Run Code Online (Sandbox Code Playgroud)
=)
| 归档时间: |
|
| 查看次数: |
17181 次 |
| 最近记录: |