我在通过Ajax发送数据上传文件时遇到一些麻烦,如果我直接从表单发送数据,它可以使用以下代码:
var fs = require('fs');
var fstream;
var folder = 'public/images/tmp/';
var path;
var images = [];
req.pipe(req.busboy);
req.busboy.on('file', function (fieldname, file, filename) {
if(filename){
if (!fs.existsSync(folder)) {
fs.mkdirSync(folder,0744);
}
path = folder+ filename;
fstream = fs.createWriteStream(path);
file.pipe(fstream);
} else {
path= undefined;
}
images.push(path);
res.send(images);
});
并将文件发送到服务器中的temp文件夹。但我需要将图像返回到我的javascript,因此使用该数据我可以执行其他操作。
现在,我想的选择是: 1-找到一些方法来避免“data.send()”将表单重定向到结果视图 2-使用类似于:
的代码使用Ajax发送数据 $.ajax( {
url: '/media',
type: 'POST',
data: new FormData(document.getElementById('#myFormId')),
success: //do things,
error: //do other things
});
但它不起作用,我不知道我应该将数据发送到POST函数的格式,以便它可以与busboy一起使用,或者是否有其他方法将文件复制到服务器。
感谢。