如何将应用程序中的图像上传到nodejs服务器?

时间:2015-06-01 00:22:48

标签: android node.js mongodb

我正在尝试将我的Android客户端上的图像上传到我的节点js服务器上。在客户端,我使用回调捕获图像,这给我一个byte [],然后在将路径发布到我的服务器之前保存到我的内部存储中(这是推荐的方法吗?)。

  • 我已成功将整个图像上传为缓冲区,但我无法使这些流工作。

我有一个我内部保存的byte []文件

FileOutputStream fos = openFileOutput(FILENAME, Context.MODE_PRIVATE);
        fos.write(image);
        fos.close();
File file = new File(getFilesDir() + "/" + FILENAME);
        path = file.toString();

然后使用socket.io连接,我将文件的路径发送到我的服务器

socket.emit("upload_image", _id, path);

在服务器端,我监听emit并尝试使用模块gridjs将图像文件保存到我的数据库(mongodb)

socket.on('upload_image', function (_id, img) {

var gs = gridjs(db);

var readStream = fs.createReadStream(img).pipe(gs.createWriteStream('test-file'));
readStream.on('error', function (err) {
    console.log("caught: ", err);
});
readStream.on('data', function (data) {
    console.log(data);
});
readStream.on('open', function () {
});}

服务器响应客户端的emit,但尝试创建读取流时会引发错误

Error: ENOENT, open '/data/data/com.example.myapplication/files/image-2015-05-31_17-04-59.png'

我不确定我的路径是否正确,或者我是否错误地使用了createReadStream。非常感谢任何反馈!

0 个答案:

没有答案