Javascript 将图像从HTML页面保存到NetSuite文件柜会引发意外的\u错误

Javascript 将图像从HTML页面保存到NetSuite文件柜会引发意外的\u错误,javascript,suitescript,Javascript,Suitescript,我有一个suitelet可以创建html页面。此页面有一个html元素输入类型文件。我正试图把那个文件上传到文件柜。这不是在NetSuite窗体上完成的,因此文件元素不是NetSuite文件对象 HTML页面上的javascript如下所示 function uploadPhotoToNetSuite(){ var bookingid = $("#txtAddPhotoBookingId").val(); var caseid = $("#txtAddPhotoCaseId").val(); v

我有一个suitelet可以创建html页面。此页面有一个html元素输入类型文件。我正试图把那个文件上传到文件柜。这不是在NetSuite窗体上完成的,因此文件元素不是NetSuite文件对象

HTML页面上的javascript如下所示

function uploadPhotoToNetSuite(){
var bookingid = $("#txtAddPhotoBookingId").val();
var caseid = $("#txtAddPhotoCaseId").val();
var isCase = caseid != "";

var base64Image = document.getElementById("imageToAdd").src;
var formData = new FormData();

    formData.append("operations", 'uploadphoto');
    formData.append("bookingid", bookingid);
    formData.append("caseid", caseid);
    formData.append("image", base64Image);    

var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function() {
    if (this.readyState == 4) {
        var objResponse = JSON.parse(xhr.responseText);
        if(!objResponse.uploadphoto.success){
            alert(objResponse.uploadphoto.err);
        } else {
            closeLoading();
        }
        clearPhotoUpload();
    }
};

xhr.open("POST", stAPIURL, true);
loading("Uploading Photo");
xhr.send(formData);
}
然后这与我的suitelet中的一个方法相匹配,如下所示

function uploadPhoto(params, recUser){
    try{
        var imageFolder = 767406;
        var thePhoto = params.image;
        var filetype = "png";
        if(thePhoto.indexOf("image/png") > -1) filetype = "png";
        var theFile = file.create({
            name: 'test.' + filetype,
            fileType: filetype == "jpg" ? file.Type.JPGIMAGE : file.Type.PNGIMAGE,
            contents: thePhoto,
            description: 'This is a plain text file.',
            encoding: file.Encoding.UTF8,
            folder: imageFolder,
            isOnline: true
        });
        var id = theFile.save();
    } catch(err){
        return {
            success : false,
            err : JSON.stringify(err)
        }
    }
    return {
        success : true
    }
}
当这种情况发生时,我得到了意外的错误。变量thePhoto是图像的base64字符串

更新:

我修改了suitelet代码,创建了一个文本文件,文件上传得很完美,base64字符串在文本文件中。当我获取base64字符串并将其通过转换器时,我上传的图像就是结果

考虑到这一点,我再次将代码更改为

var theFile = file.create({
    name: 'test.jpg',
    fileType: file.Type.JPGIMAGE,
    contents: thePhoto,
    description: 'This is a plain text file.',
    encoding: file.Encoding.UTF8,
    folder: imageFolder,
    isOnline: true
});
并上传了一个.jpg文件。我又一次犯了错误