2016-03-15 105 views
1

我想從Node.js上傳文件到我的保管箱帳戶。我在Dropbox開發者控制檯上創建了一個應用程序,然後生成了一個訪問令牌。從node.js上傳文件到Dropbox

我使用下面的代碼讀取和文件上傳到Dropbox的:

app.get('/uploadfile', function (req, res) { 

    if (req.query.error) { 
    return res.send('ERROR ' + req.query.error + ': ' + req.query.error_description); 
    } 

    fs.readFile(__dirname + '/files/pictureicon.png','utf8', function read(err, data) { 
    if (err) { 
     throw err; 
    } 
    fileupload(data); 
    }); 
}); 

function fileupload(content) { 
    request.put('https://api-content.dropbox.com/1/files_put/auto/proposals/icon.png', { 
    headers: { Authorization: 'Bearer TOKEN-HERE', 'Content-Type': 'image/png' 
    }, body: content}, function optionalCallback (err, httpResponse, bodymsg) { 
    if (err) { 
     return console.log(err); 
    } 

    console.log("HERE"); 
    }); 
} 

通過使用上面的代碼我的文件出現在我的Dropbox帳戶,但我無法將其打開。它出現以下錯誤。

enter image description here

任何想法,我可能做錯了什麼?我在上面的代碼中犯了錯誤嗎?

回答

1

問題可能是您讀取的編碼爲utf-8的文件,即使它不是文本文件。你應該讀取緩衝區(只需not providing a encoding argument)。

+0

是的問題。謝謝您的幫助!! – Skywalker