2016-11-22 72 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': '*', 
        } 
       }) 
相關問題