我在NetSuite Suitelet中使用了以下代码来上传和处理文件:
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);
}
}
}
当我选择一个文件并提交时,我会在getValue()
上调用nlobjFile
时遇到异常。以下是回复的输出:
Exception:JavaException: java.lang.NullPointerException: charsetName
但是,我将getValue()
调用替换为getSize()
或getType()
等相同对象的其他方法,代码运行正常。
我只想解析用户在Suitelet中选择的文件。
答案 0 :(得分:0)
getFile() - 返回通过nlobjForm.addField(name,type,label,sourceOrRadio,tab)方法添加的文件。添加文件字段类型时,您将设置'file'的类型参数。
确保您使用getFile()引用的字段确实存在于表单中。
答案 1 :(得分:0)
在setEncoding()
上调用nlobjFile
方法为我做了诀窍。我正在使用中文编码,所以这是适合我的代码
var file = request.getFile("custpage_file");
file.setEncoding('GB18030');// Chinese
var content = file.getValue();//no exception