Allow the user to add more than one file to the file upload part of the form

Following is the sample code for uploading multiple files at a single form submit to the customer record

HTML

<form id="myform">


<div>
            <h2>Logo Upload
 </h2>
            <fieldset>
                <input type="hidden" name="document" value="file" id="file_fs-code">

<!-- If we want to choose multiple files then use attribute named "multiple" -->
                <input type="file" required="" class="form-control inputreq" id="file_fs" name="file" aria-required="true" onchange="myFunction('file_fs');" multiple>
            </fieldset>
        </div>
        
        <div class="loader"></div>
        <div>
            <input name="submitter" type="button" value="Submit" onclick="buttonclick();">
        </div>
</div>
</form>

<script>
var files = $('#file_fs')[0].files;
async function buttonclick(){
$("#myform").valid();
if ($("#myform").valid()) {

                $(".loader").show();

                $(".button-input").attr("disabled", true)

               var files = $('#file_fs')[0].files;
                    var fileValues = $('#file_fs');

                    var fileDataarr = [];

               for (var i = 0; i < files.length; i++) {
                        let fileDataa = getBase64(files[i]);
                        let finalData = await fileDataa;
                        var fileData = {
                            'name': files[i].name,
                            'file': finalData,
                            'type': files[i].type
                        };
                        fileDataarr.push(fileData)

                    }
                console.log('fileDataarr',fileDataarr);

              

                $.ajax({
                    type: "POST",
                    url: "https://tstdrv2552647.extforms.netsuite.com/app/site/hosting/scriptlet.nl?script=93&deploy=1&compid=TSTDRV2552647&h=fe7944609de5d8a3e689",
                    data: {
                    
                        'document': JSON.stringify(fileDataarr)

                    },
                    success: function() {
                        $(".loader").hide();
                        onClickSnap();
                        //window.parent.location.href = "https://brandedbillscustom.com/pages/branded-bills-production-flow";



                    }

                });
}
}
</script>

Suitelet

/**
 * @NApiVersion 2.x
 * @NScriptType Suitelet
 * @NModuleScope SameAccount
 */

define(['N/https', 'N/search', 'N/email', 'N/render', 'N/runtime', 'N/task', 'N/url', 'N/format', 'N/log', 'N/record', 'N/file', 'N/ui/serverWidget', 'N/error', 'N/currentRecord', 'N/encode'],
 function(https, search, email, render, runtime, task, url, format, log, record, file, serverWidget, error, currentRecord, encode) {


     function onRequest(context) {


         try {
             log.debug("method", context.request.method);
            
             if (context.request.method === 'POST') {

                log.debug('in POST');

                 log.debug("response", (context.request.body))
                 log.debug("response", (context.request.parameters))

                 var objRecord = record.load({
                    type: record.Type.CUSTOMER,
                    id:1261,
                    isDynamic: true,
                    ignoreMandatoryFields: true
                });

                 var fileValue =[]
                fileValue = context.request.parameters.document
                 var fileValue2 = JSON.parse(fileValue)
                
  
                 for(var i=0;i<fileValue2.length; i++){


                 var fileContent = fileValue2[i].file
                 log.debug("fileContent", fileContent)

                 var nameOfFile = fileValue2[i].name
                 log.debug("nameOfFile", nameOfFile)

    
                 

                 var fileName = (new Date()).getTime() + nameOfFile;
                 log.debug("fileName", fileName);


                 //create file in file cabinet
                 var typeOfFile = nameOfFile.split('.');
                 log.debug("nameOfFile", nameOfFile.length)
                 var fileTyp = typeOfFile[typeOfFile.length - 1];
                 log.debug("fileTyp", fileTyp)
        
                // response.write(fileName);

                if(fileContent){
                    var fileForData = file.create({
                        name: fileName,
                        fileType: file.Type.PDF,
                        contents: fileContent,
                        folder: -12,
                        isOnline: true
                    });

                    var fileID = fileForData.save();
                    log.debug('fileID',fileID)
                    if(i==0){
                        if (fileID) {
                            objRecord.setValue({
                                fieldId: 'custentity8',
                                value: fileID
                            });
    
                        }
                    }
                    if(i==1){
                        if (fileID) {
                            objRecord.setValue({
                                fieldId: 'custentity9',
                                value: fileID
                            });
    
                        }
                    }
                    if(i==2){
                        if (fileID) {
                            objRecord.setValue({
                                fieldId: 'custentity10',
                                value: fileID
                            });
    
                        }
                    }
                    if(i==3){
                        if (fileID) {
                            objRecord.setValue({
                                fieldId: 'custentity11',
                                value: fileID
                            });
    
                        }
                    }
                    if(i==4){
                        if (fileID) {
                            objRecord.setValue({
                                fieldId: 'custentity12',
                                value: fileID
                            });
    
                        }
                    }
                    
                 }
                

             }
             var recordId = objRecord.save({
                enableSourcing: false,
                ignoreMandatoryFields: true
            });
             }
              else {
                 try {
                     var fileHTML = file.load({
                         id: 2537
                     });
                     //get contents
                     var htmlContent1 = fileHTML.getContents();
                     context.response.write(htmlContent1);
                     
                 } catch (e) {
                     log.debug("Err ", e)
                 }
             }

         } catch (error) {

             log.debug('error', error);
         }

     }


     return {
         onRequest: onRequest

     };

 });

Leave a comment

Your email address will not be published. Required fields are marked *