Scenario or Situation
While addressing a requirement for a packaging solutions client in Atlanta, Georgia, there was a need to enable Salesforce users to upload documents from Salesforce entities.
To overcome Salesforce’s storage limitations, uploaded documents are stored in SharePoint.
Challenge or Obstacle
We’ve successfully implemented file upload functionality from Salesforce to SharePoint by developing a custom Lightning web component. We relied on SharePoint REST APIs for direct uploading from Salesforce to SharePoint.
Yet, we encountered an issue while attempting to upload files containing special characters, which led to an error.
Resolution or Solution
Despite multiple attempts with various solutions, we couldn’t resolve the issue. After persistent efforts, we opted for a straightforward JavaScript function that encodes the provided file name. Subsequently, we uploaded it to SharePoint using REST APIs with the same encoded name, and this method successfully resolved the problem. Below is a sample of the implementation:
var updatedFileName = encodeURIComponent(this.files.name); var url1 = 'https://br.sharepoint.com/sites/SFUpload' + "/_api/web/GetFolderByServerRelativePath('/Sites//SFUpload/Document Library')/Files/AddUsingPath(overwrite=true,decodedurl='" + updatedFileName + "')";
Conclusion or Summary
By encoding the file name, we have successfully managed to upload a file with special characters from Salesforce to SharePoint.