How to upload a image to Netsuite file cabinet from website using suitescript

upload image to netsuite file cabinet from website using suitescript 2.0. the image is stored in folder where the folder id specified in suitescript 2.0

View File

events: {
		'click #form-submit-button' : 'submitPatentButton',
		}

		submitPatentButton : function(e) {
			try{
				var objects = { 
					Signature: $('#Signature').val().split(',')[1], 
					customerName: $('#customerName').val(), 
					imageType: $('#Signature').val().split(',')[0].split('/')[1].split(';')[0]
				}
				console.log(objects, objects.Signature.length);
				var url = Utils.getAbsoluteUrl(
					getExtensionAssetsPath(
						"Modules/Myaccount/SuiteScript2/Myaccount.Service.ss"
					),
					true
				);
				console.log(url);
				$('#loadMessage').show();
				jQuery.post(url, objects).done(function (e) {
					$('#loadMessage').hide();
					$('#successMessage').show();
						setTimeout(() => {
							window.location.reload();
						}, 1000);

				})
				.fail(function (e) {
					$('#loadMessage').hide();
					$('#errorMessage').show();
						setTimeout(() => {
							window.location.reload();
						}, 1000);
				})
				}
				catch(e) {
					console.log('err@barcode2View',e)
				}
					
			}

Template File

<section class="myaccount-info-card">
  <label for="customer-signature" class="customer-signature-label">Signature <span class="required">*</span></label>
  <input {{#if hasAutoFocus}} autofocus {{/if}} type="file" name="files" id="result"  class="customer-signature-input" accept="image/*"  required>
  <form class="signature-form" id="signature-form" onsubmit=""  action="POST" >
   <div class='contactus-container'>
   <div class="contact-info-section">
     <div class="signature-form-group" data-input="Signature" data-validation="control-group">
      <div class="group-form-control" data-validation="control">
        <input type="text" class="form-group-input" name="Signature" id="Signature" hidden>
      </div>
     </div>  
     <div class="signature-form-group" data-input="customer-name" data-validation="control-group">
      <div class="group-form-control" data-validation="control">
        <input type="text" class="form-group-input" name="customerName" id="customerName" value={{customerName}} hidden>
      </div>
     </div>  
    <div type="text" id="text-area">
      <canvas id="canvas01" width="1000px" height="1000px" hidden></canvas>
    </div>
    <button class="submit-button" id="form-submit-button" type="submit" form="signature-form">Submit</button>
   </div>       
   <div id="loadMessage" class="alert alert-load" style="display:none;" >Signature is uploading, it may take some time. Please wait...</div>
   <div id="successMessage" class="alert alert-success" style="display:none;" > Signature Uploaded successfully...</div>
   <div id="errorMessage" class="alert alert-danger" style="display:none;" > Sorry for for the inconvineance, signature is not Uploaded</div>
 </form>
</section>
<script>
  $('#result').change(function handleFiles(e) {
    var ctx1 = $('#canvas01');
     var ctx = $(ctx1)[0].getContext('2d');
     var img = new Image();
     img.onload = function() {
       ctx.drawImage(img, 0, 0);
        var base64 = document.querySelector('#canvas01').toDataURL();
        $('#Signature').val(base64);
     }
  
     img.src = URL.createObjectURL(e.target.files[0]);
  })
  
  </script>

Suitescript 2.0

/**
* @NApiVersion 2.x
* @NModuleScope Public
*/
define(['N/file'],function (file) {
    "use strict";
    function uploadSign(data) {
        log.error('data', data);
       
        if (data.request.method === 'POST') {
            var signatureData = data.request.parameters.Signature;
            var customerName =  data.request.parameters.customerName;
            var imageType =  data.request.parameters.imageType;
            log.error('signatureData', signatureData);
            log.error('customerName', customerName);
            log.error('inside Post, imageType', imageType)
            if (imageType == 'png') {
                var imageName = customerName + '.png'
                var fileObj = file.create({
                    name: imageName,
                    fileType: file.Type.PNGIMAGE,
                    contents: signatureData,
                    description: 'This is customers Signature',
                    encoding: file.Encoding.BASE_64,
                    folder: 18826,
                    isOnline: true
                });
                var id = fileObj.save();
                

            } else {
                var imageName = customerName + '.jpg'
                var fileObj = file.create({
                    name: imageName,
                    fileType: file.Type.JPGIMAGE,
                    contents: signatureData,
                    description: 'This is customers Signature',
                    encoding: file.Encoding.BASE_64,
                    folder: 18826,
                    isOnline: true
                });
                var id = fileObj.save();
            }

        }
        return data.response.write(JSON.stringify({success: 'success'}));
    }
    return {
        service: uploadSign
    };
});

File Cabinet:

Leave a comment

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