如何使用带有 ajax 的 FormData 读取从表单发送的数据并将其存储到本地文件夹?

How can I read data sent from form using FormData with ajax and store it to local folder?

这是我在客户端的 ajax 代码:

$('#btn_file').on('change', function(e){
        e.preventDefault();            
        var data = new FormData();
        data.append('photo', $('#btn_file')[0].files[0]);

        $.ajax({
            url: "/media/images",
            type: "POST",
            data: data,
            processData: false,
            contentType: false,
            success: function (data) {
                console.log(data);
            }
        });
    return false;
 });

这是我的服务器端:

app.post('/media/images', function (req, res) {
   //What do I have to do to get an image and save it? And how do I rename the file?

});

HTML:

<form id="send_image" ction=”/media/images” method=”post” enctype=”multipart/form-data”>
     <input type="file" name="photo" id="btn_file"/>
</form> 

我找到了一些示例,但其中 none 有效。我真的不知道问题出在哪里。谢谢。

在 Node JS 中管理文件上传你可以使用 Formidable:https://www.npmjs.com/package/formidable#readme

var formidable = require('formidable');
app.post('/media/images', function (req, res) {
    var form = new formidable.IncomingForm();

    form.parse(req, function(err, fields, files) {
      res.writeHead(200, {'content-type': 'image/jpeg'});
      res.write('received upload:\n\n');
      res.end(util.inspect({fields: fields, files: files}));
    });
});

然后要存储文件,您可以使用 "fs" api.