2016-11-22 2 views
0

Я пытаюсь загрузить и загрузить файлы на сервер SharePoint с помощью библиотеки sp-request для Node.js и SHAREPOINT REST API
Я могу обрабатывать текстовые файлы, но когда дело доходит до другие типы файлов (изображения, docx ...), они всегда оказываются поврежденными.
Так что мне интересно, если я должен использовать другие методы для чтения и записи файлов в моем коде Node.js. Метод

Загрузить:Как обрабатывать разные типы файлов в Node.js

fs.readFile('file1.png', 'utf8', function (err, file) { 
spr.requestDigest('http://vm2008sharepo/') 
    .then(function (digest) { 
       return spr.post('http://vm2008sharepo/_api/web/getfolderbyserverrelativeurl(\'Documents\')/Files/Add(url=\'file1.png\')', { 
        body: file, 
        headers: { 
         'X-RequestDigest': digest, 
         'X-HTTP-Method': 'POST', 
         'IF-MATCH': '*', 

        } 
       }) 
        .then(postResult => { 
         console.log("File Added"); 
        }); 


    }) 
    .catch(function (err) { 
     console.log(err.stack); 
    }); 
}); 


Метод загрузки:

var file = fs.createWriteStream("file2.odt"); 
     var path = 'file2.odt'; 
     spr.requestDigest('http://vm2008sharepo/') 
      .then(function (digest) { 
       spr.get('http://vm2008sharepo/_api/web/GetFileByServerRelativeUrl(\'/Documents/file2.odt\')/$value') 
        .then(function (response) { 
         try { 
          fs.writeFile(path, response.body); 
          console.log("File Downloaded"); 
         } catch (error) { 
          console.log(error.stack); 
         } 
        }); 
      }) 
      .catch(function (err) { 
       console.log(err.stack); 
      }); 

ответ

0

Оказывается, мой HTTP звонки Отправка файлов в JSON формат, и я только что для предотвращения этого путем добавления строки к моему коду:

return spr.post('http://vm2008sharepo/_api/web/getfolderbyserverrelativeurl(\'Documents\')/Files/Add(url=\'file1.png\')', { 
        body: file, 
        json: false, 
        headers: { 
         'X-RequestDigest': digest, 
         'X-HTTP-Method': 'POST', 
         'IF-MATCH': '*', 
        } 
       }) 
Смежные вопросы