We can create a document/attachment object record in Salesforce using Javascript by calling Salesforce soap webservice.
Note – Variable __sfdcSessionId is used to store sessionid.
Script files:
<script type="text/javascript">// <![CDATA[ __sfdcSessionId = '{!$Api.Session_Id}'; // ]]></script> <script src="/soap/ajax/30.0/connection.js" type="text/javascript"></script> <script src="/soap/ajax/30.0/apex.js" type="text/javascript"></script>
Javascript function which is used to call salesforce webservice and create document record.
function addAttachment(){ var reader = new FileReader(); var attachFile = document.getElementById('newAttFiles').files[0]; if(attachFile == undefined){ alert('Attachment required to proceed'); return; } if(attachFile.size > 26214400){ //Where 26214400 is byte equivalent of 25MB alert('Attachment size not supported'); } reader.onload = function(e) { var document = new sforce.SObject('Document'); // create document object document.Name = attachFile.name; document.Body = (new sforce.Base64Binary(e.target.result)).toString();; document.FolderId ='0056F000006CMNh' ; //Where FolderId is the ID of record to which you want to add your Document. var result = sforce.connection.create([document]); if(result[0].getBoolean("success")){ var documentId=result[0].id; // get document object id. alert('file added successfully'+documentId); }else{ alert('error occured'); } }; reader.readAsBinaryString(attachFile); }
3. VF page code.
<apex:form > <input type="file" id="newAttFiles"/> <br /> <apex:commandButton value="Upload File" onclick="addAttachment();" reRender="" /> </apex:form> </apex:page>
Leave A Comment