2017-05-31 53 views
5

Przykro mi, że muszę o to zapytać, ale już spędziłem trzy dni próbując to zrobić. Zajmuję się tworzeniem aplikacji WWW Java i chcę dołączyć obraz do strony JSP. Nazwa projektu to realestates i mam folder Files w folderze realestates.Wstaw obraz do strony jsp.

Mój kod to tak:

<img alt="govno" src="<%=request.getContextPath() + "/Files/kurac.jpg"%>" style="width: 400px; height: 300px;"> 

To co zostanie wygenerowany na stronie po tym, jak go otworzyć w przeglądarce:

<img alt="govno" src="/realestates/Files/kurac.jpg" style="width: 400px; height: 300px;"> 

ALE, obraz nie jest dispayed tylko alt "govno" jest napisane. Próbowałem wielu ścieżek (względna, absolutna, zmieniona struktura folderów milion razy i cokolwiek mogłem wymyślić i znaleźć w Internecie, ale nic nie pomogło). Kto by powiedział, że coś takiego będzie tak trudne?

struktura folderów na serwerze Tomcat po wdrożeniu jest:

webapps 
- realestates 
    |- WEB-INF 
    |- Files 
    |- kurac.jpg 
+0

Nie znając żadnych szczegółów, nie da się pomóc. Z przeglądarki, jeśli wpisujesz tę samą ścieżkę, co się dzieje? Oczywistą odpowiedzią jest to, że obraz nie jest tam, gdzie myślisz, że jest. –

+0

Mogę otworzyć go w przeglądarce, ale muszę podać bezwzględny plik ścieżki: /// C: //Users//Lazar//Documents//workspace-sts-3.8.3.RELEASE//realestates//Files//kurac .jpg, ale jak napisałem w pytaniu w przeglądarce, otrzymuję src = "/ realestates/Files/kurac.jpg". Czy to jest ok? –

+0

Zaktualizowałem moje pytanie. Czytam, że ścieżka do pliku nie może być gdzieś w systemie plików OS, musi znajdować się gdzieś na serwerze. Zanim jeszcze nie wdrożyłem obrazu na serwer. Próbowałem odnieść się do niego z serwera do gdzieś w systemie plików. –

Odpowiedz

3

Oto facet, wyjaśniając je w mniej niż minutę.

https://www.youtube.com/watch?v=dwjwSYOrnS8

Więc potrzebne są dwie rzeczy:

1.Dodaj tę linię w jakiś plik konfiguracyjny xml

<mvc:resources location="/files/" mapping="/files/**"></mvc:resources> 

2.Zawarcie obraz na stronie JSP z tej linii

<img src='<c:url value="/files/korali.jpg"></c:url>' />  
0

czytam twoje pytanie i mam jedno rozwiązanie problemu można użyć strumienia wejściowego dla dodać zdjęcie na stronie JSP ...

To tylko PRZYKŁAD ... i może mieć błąd, ale jest to sposób, jak wstawić obrazek w JSP ...

Class.forName("com.mysql.jdbc.Driver").newInstance(); 
Connection connection = 
    DriverManager.getConnection(connectionURL, "user", "pass"); 

psmnt = connection.prepareStatement(
    "insert into save_image(user, image) values(?,?)"); 
psmnt.setString(1, username); 

ImageIO.write(image, "png", new File("C://image.png")); 
File imageFile = new File("C://image.png"); 
FileInputStream fis = new FileInputStream(imageFile); 

psmnt.setBinaryStream(2, (InputStream)fis, (fis.length())); 
int s = psmnt.executeUpdate(); 
+0

To nie jest to, czego potrzebuję. Po prostu muszę wyświetlić obraz na stronie, a ten obraz jest w systemie plików serwera. –

0

Wygląda na to, że masz się (i wszyscy inni) zmieszany gdzie jest obraz. Z twojego pytania, to wydaje się być w webapps/realestates/Files/kurac.jpg, więc to powinno działać:

<img src="/realestates/Files/kurac.jpg"> 

Od pierwszego komentarza, to jest w C:/Users/Lazar/Documents/workspace-sts-3.8.3.RELEASE/realestates/Files/kurac.jpg, więc nie będą dostępne za pośrednictwem http://. To nie zadziała.

Z Twojego późniejszego komentarza jest to /webapp/realestates/WEB-INF/Files/kurac.jpg. Pliki wewnątrz WEB-INF nie są publicznie dostępne. To też nie działa. W ostateczności przenieść plik obrazu do katalogu webapps/ROOT. Wypróbuj http://localhost/kurac.jpg z przeglądarki. W razie potrzeby zastąp nazwę localhost nazwą hosta serwera. Jeśli działa, to będzie działać jak dobrze:

<img src="/kurac.jpg"> 

Jeśli nie, to coś jest nie tak z konfiguracją Tomcat. Spróbuj ponownie zainstalować.

+0

Nic nie pomogło :( –

0

Najpierw należy utworzyć folder, obrazem poza katalogu WEB-INF i spróbuj tego kodu <img src="${pageContext.request.contextPath}/Files/kurac.jpg"/>

+0

ma również folder (Nazwane pliki) poza 'WEB-INF' patrz wyżej – AsifAli72090

+0

@ Asif.Ali wypróbuj powyższy kod działa dobrze.i również używaj tego samego kodu w moim projekcie –

+0

Próbowałem tego wiele razy –