0

我在通过 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);
});   

并将文件发送到服务器中的临时文件夹。但我需要将图像返回到我的 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 一起使用,或者是否有其他方法可以将文件复制到服务器。

谢谢。

4

0 回答 0