global with sharing class BatchFileUploadController { public String newUrl {get; set;} public String staticResource {get; set;} public BatchFileUploadController(){ AWS_Integration_Info__mdt awsConfiguration = [SELECT App_Id__c,Token_URL__c,App_Secret__c,Host_URL__c FROM AWS_Integration_Info__mdt WHERE DeveloperName = 'AWS_Default_Configuration']; if (awsConfiguration == null) { System.debug('AWS_Integration_Info__mdt没配置'); }else { newUrl = awsConfiguration.Host_URL__c + '/api/file/batchupload'; staticResource = JSON.serialize(PIHelper.getPIIntegrationInfo('Document')); } } // @RemoteAction // global static String attachBlob(String parentId, String attachmentId, String fileName, String contentType, String base64BlobValue){ // /* // parentId: The sfdc object Id this file will be attached to // attachmentId: The record of the current Attachment file being processed // fileName: Name of the attachment // contentTye: Content Type of the file being attached // base64BlobValue: Base64 encoded string of the file piece currently processing // */ // //If recordId is blank this is the first part of a multi piece upload // if(attachmentId == '' || attachmentId == null){ // Attachment att = new Attachment( // ParentId = parentId, // Body = EncodingUtil.Base64Decode(base64BlobValue), // Name = fileName, // ContentType = contentType // ); // insert att; // //Return the new attachment Id // return att.Id; // }else{ // for(Attachment atm : [select Id, Body from Attachment where Id = :attachmentId]){ // //Take the body of the current attachment, convert to base64 string, append base64 value sent from page, then convert back to binary for the body // update new Attachment(Id = attachmentId, Body = EncodingUtil.Base64Decode(EncodingUtil.Base64Encode(atm.Body) + base64BlobValue)); // } // //Return the Id of the attachment we are currently processing // return attachmentId; // } // } global class Response{ public String recordId{set;get;} public String message{set;get;} public String status{set;get;} } @RemoteAction global static Response saveFile(String fileName,String key,String transId,String parentId){ FileAddress__c file = new FileAddress__c(); PIHelper.PIIntegration pI=PIHelper.getPIIntegrationInfo('Document'); // 去除filename里得“&” zhj 2022-11-17 fileName = fileName.remove('&'); file.DownloadLink__c =pI.undeleteUrl+key+'&fileName='+fileName; file.FileName__c =fileName; file.ViewLink__c =pI.queryUrl+key; file.ParentRecordId__c =parentId; file.AWS_File_Key__c = key; Response response =new Response(); Savepoint sp = Database.setSavepoint(); try { insert file; //插入日志 //update 2022-11-17 加入新的日志方式 PIHelper.saveTransLog('Document',key,transId,file.Id,JSON.serialize(file),'success',''); response.recordId=file.Id; response.status='success'; return response; } catch (Exception e) { System.debug('into catch'+e.getMessage()); PIHelper.saveTransLog('Document',key,transId,file.Id,JSON.serialize(file),'fail',e.getMessage()); Database.rollback(sp); response.message=e.getMessage(); response.status='fail'; return response; } } }