我正在使用离子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");
}
});
});
});