Salesforce - Est-il possible d'afficher un fichier image à partir de ContentVersion personnalisée pour la page visualforce?
J'en ai écrit une simple page Visualforce qui permet à l'utilisateur de télécharger un fichier image puis
enregistrez le fichier à ContentVersion
objet.
Maintenant je veux afficher l'image enregistrée dans mon custom page visualforce. Est-il même possible?
Ressemble <apex:image>
ne peut pas être utilisé. Aussi <img href="{!cv.contentVersion}"...>
pas eu de chance.
Le vrai problème est que je n'télécharger le fichier image avec succès, mais qu'est-ce que l'URL?
J'ai testé avec un URL à l'extérieur sur google et je peux afficher l'image (comme /../..some.jpg"). Mais je ne peux pas comprendre qu'est-ce que l'URL absolue pour le fichier d'image a été téléchargée à contentversion.
REMARQUE: Ce n'est pas la ressource statique que mes utilisateurs peuvent télécharger l'image à modifier leur image utilisateur souvent.
Code
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
Page 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>
OriginalL'auteur masato-san | 2011-03-28
Vous devez vous connecter pour publier un commentaire.
Je ne crois pas qu'il est possible de l'utiliser à partir du contenu actuellement Le format fourni par ScottW fonctionne pour les Documents.
L'autre option que j'ai fait est de télécharger un fichier zip contenant mes photos pour les Ressources Statiques, qui peuvent ensuite être référencés.
OriginalL'auteur thegogz
Cela devrait fonctionner:
OriginalL'auteur Pat
Basé sur mon expérience, "thegogz"est correct, il n'est pas possible actuellement de rendre des images directement à partir de Contenu. Comme d'autres l'ont indiqué, le rendu à partir de Documents et/ou les Ressources Statiques, et à mon humble avis à l'aide de Documents est préférable, car vous pouvez accéder à l'URL, des données binaires, etc. par programmation dans l'Apex.
OriginalL'auteur TechOwl
Exemple :
<apex:image URL="/servlet/servlet.FileDownload?file={!recordId}"/>
pour plus d'informations,
visite Affichage des Images dans une Force Visuelle de la Page
OriginalL'auteur Dhawal Saiya
Essayer
<apex:image URL="/servlet/servlet.FileDownload?file={!recordId}"/>
Je suppose que je dois utiliser d'objet de Document de la place qui n'est pas permis d'avoir des données en phase d'emballage, mais il peut-être la seule façon... 🙁
Si vous avez l'URL ci-dessus, vous pouvez simplement utiliser un régulier de la balise HTML < img > pour afficher l'image, plutôt que d'utiliser l'apex:l'image.
OriginalL'auteur ScottW