Skip to content

Instantly share code, notes, and snippets.

@benjsicam
Last active December 28, 2023 00:00
Show Gist options
  • Save benjsicam/6260123 to your computer and use it in GitHub Desktop.
Save benjsicam/6260123 to your computer and use it in GitHub Desktop.
This code is the File Upload Suitelet for the NetSuite Wizard or NetSuite Assistant which has a File Upload functionality.
/**
* File Upload Suitelet.
* @param {nlobjRequest} request Request object
* @param {nlobjResponse} response Response object
* @returns {Void} Any output is written via response object
*/
function main(request, response) {
if (request.getMethod() == 'GET') {
/* Build the upload form. */
var form = nlapiCreateForm('Upload a File', true);
var fileField = form.addField('custpage_file', 'file', 'File').setMandatory(true);
var folderField = form.addField('custpage_folder', 'select', 'Folder').setMandatory(true);
fileField.setLayoutType('outside', 'startrow');
folderField.setLayoutType('outside', 'startrow');
/* Here you will also see how to pre-populate a select field
* with existing folders in the file cabinet.
*/
var folder = nlapiCreateRecord('folder');
var folders = folder.getField('parent').getSelectOptions();
folderField.addSelectOption('', '', true);
for (var i = 0; i < folders.length; i++)
folderField.addSelectOption(folders[i].getId(), folders[i].getText());
folderField.setBreakType('startrow');
form.addSubmitButton('Upload');
response.writePage(form);
} else {
/*
* Executes when the form is submitted.
* Saves the file on a folder in the File Cabinet
*/
var file = request.getFile('custpage_file');
var fileName = file.getName();
file.setFolder(request.getParameter('custpage_folder'));
file.setEncoding('UTF-8');
var fileId = nlapiSubmitFile(file);
/*
* Response will be an HTML output wherein a script enclosed in a <script> tag
* will execute the setFile() client side function (window.opener.setFile).
*/
response.setContentType('HTMLDOC');
response.write('<!DOCTYPE html><html><head><title>Upload Successful</title></head><body><h3 style="Tahoma,Geneva,sans-serif; font-size: 20px; font-weight:bold; color:#5C7499;">Upload Successful</h3><script type="text/javascript">setTimeout(function() { window.opener.setFile("' + fileId + '", "' + fileName + '"); window.close(); }, 1500);</script></body></html>');
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment