Я написал одну простую страницу Visualforce, которая позволяет пользователю загружать файл изображения, а затем сохранять файл в ContentVersion
объекте.
Теперь Я хочу отобразить сохраненное изображение на своей пользовательской странице visualforce. это вообще возможно?Похоже, <apex:image>
не может быть использован.Также <img href="{!cv.contentVersion}"...>
не повезло.
Реальная проблема в том, что я успешно загрузил файл изображения, но какой у него URL?Я проверил случайный URL-адрес снаружи в Google, и я могу отобразить изображение (например, /../..some.jpg "). Но я не могу понять, какой абсолютный URL-адрес для файла изображения, который был загружен в Contentversion.
ПРИМЕЧАНИЕ. Это не статический ресурс, поскольку мои пользователи могут загружать изображения для частой смены их изображений.
Код
public with sharing class ImageUploadTestController {
public blob file { get; set; }
public String imageFilePath { get; set; }
public ContentVersion cv { get; set; }
public ImageUploadTestController() {
cv = [select id, versionData, title, pathOnClient FROM ContentVersion limit 1];
}
//fill out the inputFile field and press go. This will upload file to the server
public PageReference go() {
ContentVersion v = new ContentVersion();
v.versionData = file;
v.title = 'some title';
v.pathOnClient ='/foo.jpeg';
insert v;
return new PageReference('/' + v.id);
}
//v.id sample
//069A00000009Ux3
}//end class
Страница Visualforce
<apex:page controller="ImageUploadTestController">
<apex:form >
<apex:inputFile value="{!file}" />
<apex:commandbutton action="{!go}" value="go"/>
</apex:form>
<!-- none of below works!! :( -->
<a href="/{!cv.id}">{!cv.title} {!cv.pathOnClient}</a>
<a href="https://na7.salesforce.com/069A00000009FG4"></a>
<apex:image value="/069A00000009Ux3" width="220" height="55"/>
</apex:page>