求支持拖拽上传至NetSuite文件柜的Suitelet脚本
实现NetSuite文件柜拖拽上传的Suitelet脚本
存在支持拖拽上传文件至NetSuite文件柜的Suitelet脚本,以下是具备拖拽上传功能的脚本说明及完整代码:
功能说明
- 提供可视化拖拽区域,支持文件拖拽上传
- 处理文件上传逻辑,将文件保存至指定的NetSuite文件柜文件夹
- 上传完成后自动跳转至已上传文件的详情页
完整代码
/** * @NApiVersion 2.x * @NScriptType Suitelet * @NModuleScope SameAccount */ define(['N/ui/serverWidget', 'N/file'], function(serverWidget, file) { function onRequest(context) { if (context.request.method === 'GET') { // 创建表单 var form = serverWidget.createForm({ title: '拖拽上传文件' }); // 添加拖拽区域字段 var dropZoneField = form.addField({ id: 'custpage_dropzone', type: serverWidget.FieldType.INLINEHTML, label: '拖拽文件至此处' }); // 设置拖拽区域HTML内容 var dropZoneHTML = '<div id="dropZone" style="border: 2px dashed #ccc; padding: 20px; text-align: center;">' + '<span style="font-size: 18px;">拖拽文件至此处</span>' + '</div>'; dropZoneField.defaultValue = dropZoneHTML; // 添加用于存储文件ID的隐藏字段 var fileIdField = form.addField({ id: 'custpage_fileid', type: serverWidget.FieldType.TEXT, label: '文件ID' }); fileIdField.updateDisplayType({ displayType: serverWidget.FieldDisplayType.HIDDEN }); // 添加提交按钮 form.addSubmitButton({ label: '上传' }); // 渲染表单 context.response.writePage(form); } else if (context.request.method === 'POST') { // 处理文件上传逻辑 var fileObj = file.create({ name: context.request.files.custpage_file.name, fileType: context.request.files.custpage_file.fileType, contents: context.request.files.custpage_file.getContents(), folder: 12807 // 替换为你要保存文件的文件柜文件夹ID }); var fileId = fileObj.save(); // 跳转至文件柜中已上传的文件页面 context.response.sendRedirect({ type: serverWidget.RedirectType.MEDIA_ITEM, identifier: fileId }); } } return { onRequest: onRequest }; });
使用注意事项
- 必须替换代码中的
folder: 12807为你实际需要存储文件的NetSuite文件柜文件夹ID - 脚本需部署为Suitelet类型,并确保部署权限允许访问目标文件柜文件夹
- 该脚本基于NetSuite SuiteScript 2.x版本开发,需在对应版本环境中使用
内容的提问来源于stack exchange,提问作者wooyung
相关产品推荐
相关产品推荐

