Javascript 将图像从HTML页面保存到NetSuite文件柜会引发意外的\u错误
我有一个suitelet可以创建html页面。此页面有一个html元素输入类型文件。我正试图把那个文件上传到文件柜。这不是在NetSuite窗体上完成的,因此文件元素不是NetSuite文件对象 HTML页面上的javascript如下所示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
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文件。我又一次犯了错误