使用nodejs上传图像



我正在使用离子V3,并且用于后端使用的nodejs。

var storage = multer.diskStorage({
destination: function(req, file, callback) {
    callback(null, './uploads')
},
filename: function(req, file, callback) {
    console.log(file)
    callback(null, file.fieldname + '-' + Date.now() + path.extname(file.originalname))
}
});

var upload = multer({存储:storage}(;

要调用此方法,我们需要REQ,通过API调用,如下所示,

upload(req, res, function(err) {
    res.end('File is uploaded')
});

我的问题可以在没有API调用(REQ,RES(的情况下调用此上载函数?如果是,我们该怎么办?

我想做的是,我正在使用ionic2和nodejs开发聊天应用程序,可以共享图像。该图像应上传到服务器端。我该如何处理套接字编程?

如果要使用base64上传图像,则可以使用以下代码

socket.on('Upload_Image_base64', function(data)
{
    var fs = require('fs');
    var img = data.image64;
    var imgname = new Date().getTime().toString();
    imgname = data.userid + imgname + '.png';
    var data = img.replace(/^data:image/w+;base64,/, "");
    var buf = new Buffer(data, 'base64');
    fs.writeFile(__dirname + "/uploads/" +imgname, buf);
});

//此处data.image64和data.userid->是我们在插座事件请求中传递的参数。对于多部分 - 这可能会对您有所帮助。

socket.on('Upload_Image', function(data)
{
    var app = require('express')();
    var multer  = require('multer')
    var storage = multer.diskStorage({
          destination: function (req, file, cb) {
            cb(null, 'uploads/')
          },
          filename: function (req, file, cb) {
            cb(null, file.fieldname + '-' + Date.now())
          }
    })
    var upload = multer({ storage: storage }).single(data.file);
    console.log(data.file);
    app.post('/',  function (req, res) 
    {
        upload(req,res,function(req,res)
        {
            if(err)
            {
                console.log("error uploading file");
            }
            else
            {
                console.log("uploaded");
            }
        });
    });
});

相关内容

  • 没有找到相关文章

最新更新