Guten morgen zusammen,
ich möchte gerne hochgeladene Bilder direkt nach dem Upload weiter verwenden.
Das Problem ist, dass das Bild erst nach erneutem Deployen benutzt werden kann.
Momentan werden die Bilder in ein Unterverzeichnis von public_html geladen,
wenn ich im Verzeichnis per Explorer gucke, sind die Bilder auch vorhanden, sie liegen aber wahrscheinlich nicht im WebLogicServer (bzw. Tomcat) Cache.. kommt das hin?
Und auf andere Verzeichnisse außerhalb des Projekts hat der Server kein Zugriff..
Wie kann ich den Fileupload trotzdem realisieren?
Hier ist mal ein Mustercode:
Angezeigt werden soll das:
Wie gesagt, wenn ich ein Bild auswählt, welches bereits auf dem Server liegt, zeigt er es direkt an. Wenn das Bild noch nicht im Verzeichnis liegt, lädt er es korrekt hoch, angezeigt kann es aber erst werden, wenn ich neu deploye..
Kann mir vielleicht jemand nen Tipp geben?
Da das mein erster Post ist, wünsche ich uns ein freundliches Miteinander
Vielen Dank
ps: bitte nicht wunder, den Thread findet man auch ohne Beteiligung hier wieder...
ich möchte gerne hochgeladene Bilder direkt nach dem Upload weiter verwenden.
Das Problem ist, dass das Bild erst nach erneutem Deployen benutzt werden kann.
Momentan werden die Bilder in ein Unterverzeichnis von public_html geladen,
wenn ich im Verzeichnis per Explorer gucke, sind die Bilder auch vorhanden, sie liegen aber wahrscheinlich nicht im WebLogicServer (bzw. Tomcat) Cache.. kommt das hin?
Und auf andere Verzeichnisse außerhalb des Projekts hat der Server kein Zugriff..
Wie kann ich den Fileupload trotzdem realisieren?
Hier ist mal ein Mustercode:
Code:
package test; import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.InputStream; import java.io.IOException; import java.util.ArrayList; import javax.faces.event.ValueChangeEvent; import org.apache.myfaces.trinidad.model.ChildPropertyTreeModel; import org.apache.myfaces.trinidad.model.UploadedFile; import javax.faces.application.FacesMessage; import javax.faces.context.FacesContext; import javax.faces.event.ValueChangeEvent; import org.apache.myfaces.trinidad.model.UploadedFile; public class bt { private String img = "/img/flagge_de.jpg"; public void setImg(String img) { this.img = img; } public String getImg() { return img; } public void upload(ValueChangeEvent vc) throws IOException { UploadedFile file = (UploadedFile)vc.getNewValue(); String save = ""; String[] filenameArray = new String[6]; if (file != null) { int n = 0; InputStream is = file.getInputStream(); File f = new File("D:\\uni\\SS10\\webdev\\testJSF\\Project1\\public_html\\img"); if (!f.isDirectory()) f.mkdir(); String dir = "D:\\uni\\SS10\\webdev\\testJSF\\Project1\\public_html\\img" ; String fileName = file.getFilename(); save = dir + (File.separator) + fileName; FileOutputStream fos = new FileOutputStream(save); img = "/img/" + fileName; this.setImg(img); System.out.println(img); try { //die Datei wird auf den Server geschrieben while ((n = is.read()) >= 0) fos.write(n); } catch (IOException e) { System.out.println("Error: " + e.getMessage()); e.printStackTrace(); } } } }
Code:
<tr:form usesUpload = "true"> <tr:inputFile label = "Upload demo" valueChangeListener= "#{bt.upload}"/> <tr:commandButton text="Go"/> </tr:form> <tr:image source="#{bt.img}"/>
Wie gesagt, wenn ich ein Bild auswählt, welches bereits auf dem Server liegt, zeigt er es direkt an. Wenn das Bild noch nicht im Verzeichnis liegt, lädt er es korrekt hoch, angezeigt kann es aber erst werden, wenn ich neu deploye..
Kann mir vielleicht jemand nen Tipp geben?
Da das mein erster Post ist, wünsche ich uns ein freundliches Miteinander
Vielen Dank
ps: bitte nicht wunder, den Thread findet man auch ohne Beteiligung hier wieder...
Comment