将blob转换为图像并将其保存到本地文件夹 - Apex

时间:2018-05-03 12:44:16

标签: salesforce apex-code apex

我能够从richtext字段读取blob现在需要将其保存为.jgp / png到我的本地文件夹

Matcher imgMatcher = Pattern.compile( '<img(.+?)>' ).matcher(con.Photo__c);
String imageURL = imageTag.substringBetween( ' src="', '"' );
String decodedURL = imageURL.unescapeHtml4();
PageReference page = new PageReference( decodedURL );
Blob bodyBlob = page.getContent();


//something like this
File file=new File('c://myimages');
image img=new image(bodyBlob); 
img.fomrat='jpg';
img.title='myphoto';
file.save(img);

因此它将图像存储在我的本地文件夹中。这是可能的使用apex(salesforce)

2 个答案:

答案 0 :(得分:0)

Salesforce无法写入您的文件系统。您有几个选项,您可以保存到附件记录或文档记录并从那里下载,或者您可以通过visualforce页面公开文件,如果您不想将文件存储在附件中,可以将文件作为附件下载销售人员。类似的东西:

<apex:page contentType="img/jpg" extensions="xxx">{!image}</apex:page>

答案 1 :(得分:0)

这就是我实现的方式,一旦保存到salesforce文件夹,我就下载了图像,希望它对某人有帮助。

    Matcher imgMatcher = Pattern.compile( '<img(.+?)>' ).matcher(con.Photo__c);
    String imageURL = imageTag.substringBetween( ' src="', '"' );
    String decodedURL = imageURL.unescapeHtml4();
    PageReference page = new PageReference( decodedURL );
    Blob bodyBlob = page.getContent();    
    Document doc=new Document();
    doc.Body=bodyBlob;
    doc.FolderId='salesforce folder Id';
    doc.Name=con.name;
    doc.Type='jpg';
    Insert doc;