我尝试使用以下代码在Salesforce闪存(用于文件上传)中创建和插入ContentVersion对象:
ContentVersion v = new ContentVersion();
v.versionData = EncodingUtil.base64Decode(content);
v.title = fileName;
v.pathOnClient = fileName;
insert v;
这适用于较小的文件。但是当我尝试加载一个只有750KB的文件时,上述操作失败了(实际允许的大小可能更小)。 如果可以使用上述代码上传的文件,是否有任何限制?
答案 0 :(得分:0)
根据Salesforce StackExchange的类似问题。
来自Base Lightning Components Considerations:
使用type =“file”时,您必须提供自己的服务器端逻辑,以便将文件上载到Salesforce。 [...] 使用此组件上载文件受常规Apex控制器限制(1 MB)的限制。为了适应base64编码导致的文件大小增加,我们建议您将最大文件大小设置为750 KB。您必须实现大于1 MB的文件大小的分块。通过分块上传的文件的大小限制为4 MB。
Base64正在推动文件大小超过1 MB的Maximum HTTP POST form size—the size of all keys and values in the form限制。或者至少这似乎是适用的限制。
相反,您需要使用How to Build a Lightning File Uploader Component中使用的嵌入式Visualforce页面。这可以使您达到Maximum file size for a file uploaded using a Visualforce page 10 MB的限制。只需记住在堆大小限制赶上之前将文件处理保持在最低限度。