如何使用脚本语言将文件从Chrome保存到网络驱动器?(已经在IE中工作)



在SharePoint 2013文档库上,我为每个文件的onclick事件附加了以下JavaScript函数:

function logAccess(fp) {
var userID = dsource.user.userid.substring(7);
var userName = dsource.user.userName;
var fPath = '\\server\folder\subfolder\subfolder2\subfolder3\subfolder4\subfolder5\';
var fso = new ActiveXObject('Scripting.FileSystemObject');
if (fso.FolderExists(fPath)) {
var s = fso.CreateTextFile(fPath + tStamp + '.txt');
s.writeline(userID + '|' + userName + '|' + fp);
s.Close();    
}
}

这将创建一个.txt文件,告诉我谁在何时访问了哪个文件,并将其保存到网络驱动器位置 (fPath(。

它在Internet Explorer上按预期工作,但由于它使用ActiveX,因此在Chrome上不起作用,并且我无法选择为Chrome启用IE Tab扩展。

我尝试使用 fileaver.js API,它甚至可以创建.txt文件并下载它,但它下载到用户的默认下载文件夹(我无法指定保存位置路径(。见下文:

function logAccessChr(fp) {
var userID = dsource.user.userid.substring(7);
var userName = dsource.user.userName;
var content = userID + '|' + userName + '|' + fp;
var filename = tStamp + '.txt';
var blob = new Blob([content], {
type: "text/plain;charset=utf-8"
});
saveAs(blob, filename);
}

谁能想到在Chrome上实现这一目标的不同方法?欢迎任何建议。

这是不可能的,因为这是一个非常大的安全风险。人们使用真实信息作为他们的文件夹结构,访问文件夹名称会带来直接的风险。另外,看看这里:

使用javascript获取浏览器下载路径

抱歉,出于良好的(安全(原因,它无法完成。

最新更新