Servlet Bild als JPG darstellen - nur alternativer Text

DonMarcoHH

Aktives Mitglied
Moin,

ich hab seit Tagen ein Problem, das ich nicht verstehe.
Ich habe ein Bild erstellt und als JPG abgespeichert.
Das rufe ich nun auf und lass es mit
Code:
<img src="..." alt="Hier sollte ein Bild sein">
darstellen.

Anstatt des Bildes erscheint aber nur der alternative Text.
Schaue ich in den Sourcetext der Seite, steht dort der richtige Pfad und kopiere ich den Pfad und folge ihm, erscheint auch das Bild.

Ich hab auch schon den absoluten Pfad in einen relativen Pfad geändert und den Pfad wo das Bild gespeichert wird als SRC Pfad (bei Eclipse) mit angegeben. Und der Pfad ist auch korrekt.
Aber er zeigt das Bild nicht an, sondern nur den alternativen Text. ???:L

Weiss jemand weiter=?
 

ARadauer

Top Contributor
Was ist das für ein Bild? Wo liegt es? Wie lautet der genaue Dateiname? Was steht jetzt genau in deinem Code?
Liegt das schon am Server?

Habe schon gesehen, das Leute PSD Dateien verlinkt haben...
 

DonMarcoHH

Aktives Mitglied
Das Bild ist ein jpg.
Es heisst: zum Beispiel
Code:
IBW10271_PROCESS_WORKFLOW_MSG.jpg
Der Pfad wäre relativ
Code:
analysis/2011-07-14/charts

Und der Programmcode, der das ins Servlet einbindet lautet:
Java:
    private String getChartImplementation(String savePath) {
        return "<td><img src=\""
                + savePath
                + "\" height=\"400\" width=\"600\" alt=\"Picture of the component\">";
    }

Der SourceCode, der dann auf der Website rauskommt lautet(e):
[XML]<td><img src="D:\schefmk\eclipse361\work.0\CDT Beta Open\analysis\2011-07-14\charts\IBW10271_PROCESS_WORKFLOW_MSG.jpg" height="400" width="600" alt="Picture of the component"></td>
[/XML]
Nach Bereinigung lautet er nun (funktioniert aber immernoch nicht):
[XML]<td><img src="analysis\2011-07-18\charts\ITO11061_LIST_TS_VOLUMES_INBOUND.jpg" height="400" width="600" alt="Picture of the component"></td>[/XML]
(Das
Code:
<table></table>
hab ich mal weggelassen, da in der Tabelle noch 1000 andere Sachen stehen)

EDIT:
okay, ich glaub der Fehler liegt daran, dass er aus dem Pfad wieder nen absoluten macht, der auf die Festplatte verweist, anstatt relativ. Warum macht er das? Ich hab doch einen relativen Pfad eingegeben?
savePath lautet im obigen Beispiel zB:
Code:
analysis/2011-07-14/charts/IBW10271_PROCESS_WORKFLOW_MSG.jpg
 
Zuletzt bearbeitet:

The_S

Top Contributor
Daran liegts auch. kA, wird aus dem Code nicht ersichtlich, warum der absolute Pfad verwendet wird. Lass dir doch mal savePath ausgeben.
 

DonMarcoHH

Aktives Mitglied
Ja,

ich hab ne Routine drin, die den canonicalPath() zurückgibt. Habe ich nun auch geändert... Die Ausgabe ist nun:
Java:
<td><img src="analysis\2011-07-18\charts\ITO11061_LIST_TS_VOLUMES_INBOUND.jpg" height="400" width="600" alt="Picture of the component"></td>

Funktioniert aber immernoch nicht.
 

homer65

Top Contributor
Es könnte sein, das die Pfadangabe wie folgt aussehen sollte:
Code:
<td><img src="D:\\schefmk\\eclipse361\\work.0\\CDT Beta Open\\analysis\\2011-07-14\\charts\\IBW10271_PROCESS_WORKFLOW_MSG.jpg" height="400" width="600" alt="Picture of the component"></td>
Eben mit doppeltem \\ statt einfachem \
 

DonMarcoHH

Aktives Mitglied
Es könnte sein, das die Pfadangabe wie folgt aussehen sollte:
Code:
<td><img src="D:\\schefmk\\eclipse361\\work.0\\CDT Beta Open\\analysis\\2011-07-14\\charts\\IBW10271_PROCESS_WORKFLOW_MSG.jpg" height="400" width="600" alt="Picture of the component"></td>
Eben mit doppeltem \\ statt einfachem \

Ne, das oben war schon die Ausgabe des Quelltextes im Browser! Rechtsklick - "Seitenquelltext anzeigen"
Also da muss nichts mehr escaped werden. Hab auch schon die \ in / umgedreht, aber daran lags auch nicht.
 

The_S

Top Contributor
Was passiert denn, wenn du an die URL, die im Browser angezeigt wird, einfach den String (analysis\2011-07-18\charts\ITO11061_LIST_TS_VOLUMES_INBOUND.jpg) anhängst? Also direkt im Browser einfach die aktuelle Adresse ergänzen.
 

DonMarcoHH

Aktives Mitglied
Genau da liegt der Fehler. Er kann keins der Bilder finden. Aber genau an der Adresse liegen die Bilder! Muss ich dem Server oder Servlet, der das ganze konfiguriert noch etwas mitgeben, dass der Pfad, wo die Bilder liegen, freigegeben wird?
 

The_S

Top Contributor
Wenn der Browser keines der Bilder finden kann, die du direkt in der URL eingibst, dann kann er natürlich auch keines darstellen. Heißt deine Bilder werden vermutlich nicht korrekt auf den Server deployed. Dafür musst du Sorge tragen!
 
G

Gast2

Gast
Es kann auch sein, dass der Browser keinen Zugriff auf die Bilder hat, z.b. wenn die per htaccess geschützt sind.
Du bist dir sicher dass der Pfad stimmt und dass die Bilder da auch liegen?
 

DonMarcoHH

Aktives Mitglied
Sie liegen genau an der Stelle auf der Festplatte und von dort starte ich den Webserver. Dateien die direkt daneben liegen kann er auch laden (Textdateien), aber die Darstellung der Bilder die dort liegen klappt nicht.. Als wären sie nicht an der Stelle, wo sie sein sollten, aber warum findet er dann die Textdateien, die daneben liegen...?
 

DonMarcoHH

Aktives Mitglied
Und das beantwortet meine Frage?

Insofern schon, als dass ich direkt darüber geschrieben habe, was das Problem ist und damit eigentlich klar sein sollte, dass ich dir mehr nicht sagen kann als das hier:
Genau da liegt der Fehler. Er kann keins der Bilder finden. Aber genau an der Adresse liegen die Bilder! Muss ich dem Server oder Servlet, der das ganze konfiguriert noch etwas mitgeben, dass der Pfad, wo die Bilder liegen, freigegeben wird?

Wo sie unter localhost liegen, wenn sie nicht an der gleichen Stelle liegen, wie auf meiner Festplatte, wüsste ich gerne, wo sie dann liegen und wie ich das rausfinde... :rtfm:
 

The_S

Top Contributor
Du kannst dein lokales Dateisystem nicht mit deinem Server gleichstellen. Ein Server ist ein Programm, das Anfragen verarbeitet. Bspw. gibt der Server dem Browser den HTML-Code zurück, der Browser analysiert das, findet den src-Tag und fordert daraufhin vom Server das Bild unter den von dir angegebenen Pfad an. Der Server schaut dann nach seinem eigenen Schema nach, ob er eine Datei mit diesem Dateinamen und der dazugehörigen Pfadassoziation finden kann. Findet er eine solche Datei, liefert er diese an den Browser zurück, ansonsten nicht. Dieses Schema KANN das Dateisystem des Rechners sein, auf welchem der Server läuft, MUSS aber nicht. Und wenn es das Dateisystem ist, heißt das noch lange nicht, dass der Server relativ von dem Ort aus sucht, von welchem aus deine Server-Runnable liegt.

Um was für einen Server handelt es sich denn?
 

Ähnliche Java Themen

Neue Themen


Oben