简体   繁体   English

Nodejs Formdata文件上传

[英]Nodejs Formdata file upload

I am getting my image object from canvas and converting it into blob and then to file in java script 我正在从画布上获取图像对象,并将其转换为blob,然后转换为Java脚本中的文件

        var sendingData = new FormData();
        var ctx = mainCanvas.getContext("2d");
        console.log("canveas content =" + noofchildren.get(i));
        ctx.drawImage(noofchildren.get(i), 0, 0, mainCanvas.width, mainCanvas.height);

        var b64Data = mainCanvas.toDataURL("image/jpeg", 0.7).split(",")[1];
        var byteCharacters = atob(b64Data);
        var byteNumbers = new Array(byteCharacters.length);
        for (var j = 0; j < byteCharacters.length; j++) {
            byteNumbers[j] = byteCharacters.charCodeAt(j);
        }
        var byteArray = new Uint8Array(byteNumbers);
        var blob = new Blob([byteArray], { type: contentType });
        var file = new File([blob], "sample.JPG", { type: "image/jpeg" });

        sendingData.append(nameOfTheImageFiles[i], file);

        var ajaxRequest = $.ajax({
        type: "POST",
        url: "/api/" + email + "/imagesupload",
        contentType: 'multipart/form-data',
        processData: false,
        data: sendingData
    }).success(function (data) {
        console.log(data);
        $("#image-container").children().remove();
    });

i am using ajax to post my file to nodejs server 我正在使用ajax将文件发布到nodejs服务器

and req.files is an empty object in nodejs 和req.files是nodejs中的空对象

How to resolve? 怎么解决?

In asp.net I am getting the file on post method 在asp.net中,我正在使用post方法获取文件

Looking at the documentation of FormData.append() , you can see that you can only have a File as value when you have specified the third filename parameter. 查看FormData.append()的文档,您可以看到只有在指定了第三个filename参数后,才能将File作为值。 So try swapping the relevant line to the following 因此,尝试将相关行交换为以下内容

sendingData.append(nameOfTheImageFiles[i], file, "sample.JPG");

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM