Avatar billede kube Nybegynder
02. november 2005 - 17:15 Der er 12 kommentarer og
1 løsning

Gemme fil

Hej,
jeg kan gennem en webapplikation uploade et billede og gemme dette i fx mappen C:\images\, men hvorledes gemmer jeg filen, så min webapplikation har adgang til den og senere kan vise den, fx ved en simpel html/jsp-side med:
<img src="./images/uploaded_pic.jpg" />

Hvad er løsningen eller skal det gribes anderledes an?
Avatar billede kube Nybegynder
02. november 2005 - 17:16 #1
webapplication.war
/images  <- her vil jeg gerne gemme filen
/WEB-INF
Avatar billede arne_v Ekspert
02. november 2005 - 17:20 #2
det gør du vel så ??

getServletContext().getRealPath("/images/foobar.jpg")

bør give dig en sti
Avatar billede kube Nybegynder
02. november 2005 - 17:36 #3
Det er ikke en servlet, men en JSF Managed-Bean, jeg uploader til via
myfaces input tag:
<x:inputFileUpload ..

læser med -> file.getInputStream()
og skriver til disk med BufferedOutputStream
Avatar billede kube Nybegynder
02. november 2005 - 17:37 #4
war filen ligger på en Jboss, kan jeg skrive direkte i den?
eller skal Jboss pakke .war filen ud, når der deployes
Avatar billede arne_v Ekspert
02. november 2005 - 17:47 #5
JBoss pakker ud men til et temp dir så det er måske ikke så smart

overvej et eksternt dir og en "vis billede servlet"
Avatar billede arne_v Ekspert
02. november 2005 - 17:54 #6
((ServletContext)FacesContext.getExternalContext().getContext()).getRealPath("/images/foobar.jpg")

bør kunne kaldes fra en JSF bean, men som sagt skal der nok lidt redesign til
Avatar billede kube Nybegynder
02. november 2005 - 19:36 #7
FacesContext context = FacesContext.getCurrentInstance();
            ServletContext servletContext = (ServletContext) context.getExternalContext().getContext();
            String picture = servletContext.getRealPath("/images/fooBar.jpg");
            BufferedOutputStream bw = new BufferedOutputStream(new FileOutputStream(picture));
Avatar billede kube Nybegynder
02. november 2005 - 19:38 #8
Men! jeg tror jeg overvejer et eksternt dir!!
Avatar billede kube Nybegynder
02. november 2005 - 19:42 #9
tak arne_v (svar)

Stien bliver så:
C:\jboss\server\default\tmp\deploy\tmp14371webapplication.war\images\fooBar.jpg
Avatar billede arne_v Ekspert
02. november 2005 - 19:48 #10
netop

og det er vist ikke et betryggende sted at opbevare filer

:-)

og svar

men "vis billede servlet" som henter fra et eksternt dir må være nemt
Avatar billede kube Nybegynder
02. november 2005 - 19:56 #11
<h:graphicImage id="image"
  alt="jsf-sun"
  url="/images/jsf-sun.gif">
</h:graphicImage>
Avatar billede kube Nybegynder
02. november 2005 - 20:02 #12
men hvordan kan jeg benytte servletten til ovenstående jsf tag?
Er det noget i stil med:
response.setContentType("image/jpg");
Avatar billede arne_v Ekspert
02. november 2005 - 20:09 #13
url="/ShowPictureServlet?pic=/images/jsf-sun.gif">

og en

response.setContentType("image/gif");

og udskriv billed fil binært
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester