Netsuite nlobjFile.getValue在Suitelet中不起作用
我在NetSuite Suitelet中使用了以下代码来上载和处理文件:Netsuite nlobjFile.getValue在Suitelet中不起作用,netsuite,Netsuite,我在NetSuite Suitelet中使用了以下代码来上载和处理文件: function main(request,response){ if (request.getMethod() == 'GET'){ var form = nlapiCreateForm('Item Import Correction', false); var fileField = form.addField('custpage_file', 'file', 'Sele
function main(request,response){
if (request.getMethod() == 'GET'){
var form = nlapiCreateForm('Item Import Correction', false);
var fileField = form.addField('custpage_file', 'file', 'Select CSV');
form.addSubmitButton();
response.writePage(form);
}else{
try{
var file = request.getFile("custpage_file");
var content = file.getValue();//exception
response.write(content);
}catch(ex){
response.write('Exception:'+ex);
}
}
}
当我选择一个文件并提交它时,调用nlobjFile
上的getValue()
会出现异常。以下是响应的输出:
Exception:JavaException: java.lang.NullPointerException: charsetName
但是,我将getValue()
调用替换为同一对象的其他方法,如getSize()
或getType()
,代码运行良好
我只想解析用户在Suitelet中选择的文件 getFile()-返回通过nlobjForm.addField(名称、类型、标签、sourceOrRadio、选项卡)方法添加的文件。添加文件字段类型时,您将设置“file”的类型参数
确保使用getFile()引用的字段确实存在于表单中。在
nlobjFile
上调用setEncoding()
方法为我解决了问题。我用的是中文编码,所以这是适合我的代码
var file = request.getFile("custpage_file");
file.setEncoding('GB18030');// Chinese
var content = file.getValue();//no exception
检查过这些东西。一切就绪。似乎是一个编码问题。