nlobjFile.getValue在Suitelet中不起作用

时间:2013-02-12 05:33:14

标签: 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', '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中选择的文件。

2 个答案:

答案 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