Nicht in der Lage Bilder einbetten und Dateien anhängen aus Feder Boot-Ressourcen OrdnerWie Bilder einbetten und Anhängen von Dateien aus Feder Boot Ressourcen Ordner
Ich habe einen REST-konformen Web Service mit Spring-Boot (Jar-Datei und nicht eine WAR-Datei erstellt). Einige der Dienste werden E-Mails senden, und einige von ihnen werden E-Mails mit Anhängen senden (werden dynamisch erstellt). Webpart (Angular) befindet sich im Apache-Server, der auf einem anderen Server bereitgestellt wird.
Ich benutze Freemarker Vorlage zum Verfassen von E-Mails und zum Senden von E-Mails mit Amazon SES.
von Freemarker Vorlage
<IMG src="cid:gridEmailHeaderImage">
-Code
MimeBodyPart inlineImage = new MimeBodyPart();
DataSource fds = new FileDataSource(imagePath.getAbsolutePath());
inlineImage.setDataHandler(new DataHandler(fds));
inlineImage.setHeader("Content-ID", "<" + contentId + ">");
inlineImage.setFileName(fds.getName());
content.addBodyPart(inlineImage);
ich in der Lage Bild hinzufügen bin Dateien einbetten und anhängen, wenn ich absolute Pfad zur Verfügung stellen. Aber wenn relativer Pfad angegeben wird, funktioniert es nicht.
Meine Ordnerstruktur
C:\workspace\service-1.0\src\main\resources\images\header.png
C:\workspace\service-1.0\src\main\resources\attachements\test-attachment-1.txt
habe ich versucht, die folgenden ohne Erfolg
Ansatz 1
ServletContext context;
String path = context.getRealPath("/resources/images")+"/header.png";
Es ist für die Bilder in dem folgenden Ordner aus, aber die Bilder ist in diesem Ordner nicht verfügbar.
C: \ Users \ Benutzername \ AppData \ Local \ Temp \ tomcat-Docbase .. \ resources \ images/header.png
Ansatz 2
basePath = this.getClass().getClassLoader().getResource("/images/").getPath();
C : \ workspace \ service-1.0 \ src \ main \ ressourcen \ images \ header.png
/C:/workspace/service-1.0/build/libs/service-1.0.jar!/BOOT-INF/classes!/images/ (nur von Eclipse funktioniert aber nicht über die Eingabeaufforderung java -jar bauen \ lib \ myapp.jar)
Ansatz 3
ClassPathResource file = new ClassPathResource("header.png");
String mypath = file.getFile().getAbsolutePath();
(Dies ist auch nicht funktioniert hat)
Wenn Ich lege das Bild in Bilder Ordner unter Ressource. Ich kann das Bild über die folgende URL anzeigen.
http://localhost:7075/myservice/v1/images/header.png
ist es in Ordnung, Bilder aus Ressourcenordner zu laden? Werden Spring-Boot-Gläser zur Laufzeit explodiert? Wie lade ich Bilder aus der Spring-Boot-JAR-Datei?
Vielen Dank @Ralf Stuckert. Es hat perfekt funktioniert. – user3909315
Das ist gut zu hören :-) Es wäre sehr nett, wenn Sie es als die richtige Antwort markieren. –
Ich habe gerade die Antwort als richtige Antwort markiert. Vielen Dank noch mal. – user3909315