【发布时间】:2012-04-08 02:45:15
【问题描述】:
我在网上搜索了很多答案,但一无所获。
有没有办法通过Javascript获取浏览器的下载路径?
我不想自己设置路径,我只想知道我的文件被用户下载后去哪里。
【问题讨论】:
-
这听起来很邪恶,我怀疑这在跨浏览器意义上是可能的。
标签: javascript browser path download
我在网上搜索了很多答案,但一无所获。
有没有办法通过Javascript获取浏览器的下载路径?
我不想自己设置路径,我只想知道我的文件被用户下载后去哪里。
【问题讨论】:
标签: javascript browser path download
这是不可能的。
纯浏览器-JavaScript 无法获取有关用户文件系统的信息。默认下载路径也可能包含敏感信息,这是有风险的:
假设有人将他的下载存储在C:\CompanyName\RealName\PhoneNumber\Adress\。
【讨论】:
C:\Windows\Users\Username\Downloads 已经够糟糕了。
浏览器故意与本地文件系统隔离,以防止脚本攻击。您无法获取此信息。
【讨论】:
https://www.npmjs.com/package/downloads-folder
用法
const downloadsFolder = require('downloads-folder');
console.log(downloadsFolder());
安装
$ npm install downloads-folder
【讨论】:
execSync,它是 Node 的 C 扩展。不是服务端的吗?
Module not found: Can't resolve 'registry-js' in '.../node_modules/downloads-folder'
也许是错误的答案。你可以用一些 IE 版本来做到这一点。如果您将它用于 Intranet Web 开发作为需要文件的产品/工作流的开发,则它是有效的。它不适用于其他浏览器(Schrome、Firefox、Safari、AFAIK)。
<input
type="hidden"
id="steel_that_path"
name="steel_that_path" />
<input type="file"
id="this one you use to upload file"
name="this one you use to upload file"
accept="application/octet-stream"
onBlur="document.getElementById('steal_that_path').value=this.value;"/>
【讨论】: