Конвертировать BLOB-изображения в изображения и сохранить их в локальной папке - Apex - PullRequest
0 голосов
/ 03 мая 2018

Я могу читать blob из поля richtext, теперь нужно сохранить его как .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 голосов
/ 04 мая 2018

Так я и добился: после сохранения в папке 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;
0 голосов
/ 04 мая 2018

Salesforce не может записать в вашу файловую систему. У вас есть несколько вариантов, вы можете сохранить в записи вложения или записи документа и загрузить ее оттуда, или вы можете открыть файл через страницу visualforce, которая позволяет вам загрузить файл как вложение, если вы не хотите хранить его в Salesforce на всех. что-то вроде:

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