Last active
December 28, 2023 00:00
-
-
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.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/** | |
* 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