У меня есть суллет, который создает страницу html. Эта страница содержит файл типа ввода элемента html. Я пытаюсь взять этот файл и загрузить его в файл cab inet. Это не делается в форме NetSuite, поэтому файловый элемент не является файловым объектом netsuite.
javascript на странице HTML выглядит следующим образом
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);
}
Тогда это соответствует к методу в моем суллете следующим образом.
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
}
}
Когда это происходит, я получаю ошибку UNEXPECTED_ERROR. Переменная thePhoto является строкой base64 изображения.
ОБНОВЛЕНИЕ:
Я изменяю код суллета, чтобы создать текстовый файл и файл, который отлично загружен, и строку 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. Я снова получил ошибку.