Javascript NetSuite-Suitelet POST request.files为空,但存在文件元数据

Javascript NetSuite-Suitelet POST request.files为空,但存在文件元数据,javascript,forms,http,netsuite,suitescript,Javascript,Forms,Http,Netsuite,Suitescript,我使用HTML字符串从外部Suitelet的GET请求输出,以显示提交表单。表单有一个文件输入和两个文本输入。由于我可以通过完整的路径(params.request.files.userfile)访问context.request.files.file_name.fileType和其他字段,所以文件元数据似乎已经完成了发布,但是除了元数据之外,这里没有其他实际内容。之所以这样说,是因为当我尝试记录params.request.files[0]或params.request.files.userf

我使用HTML字符串从外部Suitelet的GET请求输出,以显示提交表单。表单有一个文件输入和两个文本输入。由于我可以通过完整的路径(params.request.files.userfile)访问context.request.files.file_name.fileType和其他字段,所以文件元数据似乎已经完成了发布,但是除了元数据之外,这里没有其他实际内容。之所以这样说,是因为当我尝试记录params.request.files[0]或params.request.files.userfile时,日志中会出现空字符串

get文件在文件柜的Netsuite中创建为正确的文件类型和名称,只有内容为空

这是我在Suitelet的“获取”部分的表格:

      var html = '<form method="post" enctype="multipart/form-data" accept-charset="utf-8">';
      html += '<input type="text" id="id" name="coolid" value="0"><br>';
      html += '<input type="text" id="token" name="token" value=""><br>';
      html += '<input type="file" id="file" name="file" accept="image/png">';
      html += '<button type="submit">submit</button>';
      html += '</form>';

      params.response.addHeader({
        name: 'Content-Type',
        value: 'text/html; charset=UTF-8'
      });

      params.response.write({ output: html });
      var fileObj = file.create({
              name: params.request.parameters.coolid+ "_file",
              fileType: params.request.files.userfile.fileType,
              contents: params.request.files[0]
            });

            fileObj.folder = -1;
            fileObj.save();
我可以在Firefox开发工具中看到从表单发送的文件数据:

并且该文件正在Netsuite文件柜中创建。只有0个字节。是否有任何关于我所做的不正确的线索?

使用答案ID,并建议您不需要使用file.create方法,并且该文件可以通过ServerRequest.files属性访问

替换:

var fileObj = file.create({
  name: params.request.parameters.customer_ext_id + "_file",
  fileType: params.request.files.userfile.fileType,
  contents: params.request.files[0]
});

fileObj.folder = -4;
fileObj.save();
与:

如果您没有被要求/承诺使用html,那么以下内容也应该适用

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);
}
if (context.request.method === 'POST')  {
  var newFile = context.request.files.custpage_file;
  newFile.folder = 123;
  var newFileId = newFile.save();
  log.audit('file created', 'file id: '+ newFileId);
}
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);
}
if (context.request.method === 'POST')  {
  var newFile = context.request.files.custpage_file;
  newFile.folder = 123;
  var newFileId = newFile.save();
  log.audit('file created', 'file id: '+ newFileId);
}