Как сохранить файл из Chrome на сетевой диск, используя язык сценариев? (уже работает в IE) - PullRequest
0 голосов
/ 23 октября 2019

В библиотеке документов SharePoint 2013 у меня есть следующая функция JavaScript, присоединенная к событию onclick для каждого файла:

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, и у меня нет возможности включить расширение IE Tab дляChrome.

Я пытался использовать API-интерфейс filesaver.js, он доходит до создания файла .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? Любое предложение приветствуется.

1 Ответ

0 голосов
/ 23 октября 2019

Это невозможно, потому что это очень большой риск для безопасности. Люди используют реальную информацию для своей структуры папок, и доступ к именам папок представляет непосредственный риск. Кроме того, посмотрите здесь:

Получить путь загрузки браузера с помощью javascript

Извините, но этого не может быть сделано по причинам безопасности (*).

...