如何使用SuiteScript 2.0将文件上传到NetSuite文件柜?
答案 0 :(得分:5)
可能的选项是创建一个带有文档字段的Suitelet,并保存上传到该字段的文件。以下是此类Suitelet的代码:
/**
*@NApiVersion 2.x
*@NScriptType Suitelet
*/
define(['N/ui/serverWidget'],
function(serverWidget) {
function onRequest(context) {
if (context.request.method === 'GET') {
var form = serverWidget.createForm({
title: 'Simple Form'
});
var field = form.addField({
id: 'custpage_file',
type: 'file',
label: 'Document'
});
form.addSubmitButton({
label: 'Submit Button'
});
context.response.writePage(form);
} else {
var fileObj = context.request.files.custpage_file;
fileObj.folder = 4601; //replace with own folder ID
var id = fileObj.save();
}
}
return {
onRequest: onRequest
};
});
答案 1 :(得分:2)
我看到你在谈论从本地存储上传文件。您可以根据您在脚本中使用的记录创建指定类型的文件。通过指定文件夹,可以保存此文件,同时还可以在脚本中进行进一步处理。
我相信下面的内容可以通过将'contents'指定为'context.request.files.custpage_file'来使用您上传的文件 - 就像在Maria的回答中所做的那样。
var exportFolder = '1254';
var recordAsJSON = JSON.stringify(scriptContext.newRecord);
var fileObj = file.create({
name: scriptContext.newRecord.id + '.json',
fileType: file.Type.JSON,
contents: recordAsJSON, description: 'My file', encoding: file.Encoding.UTF8,
folder: exportFolder,
isOnline: false
});
var fileId = fileObj.save();
fileObj.save()将返回文件柜中新创建文件的内部ID。