Avatar billede dn666 Nybegynder
03. august 2004 - 18:00 Der er 8 kommentarer og
1 løsning

Upload og tmp filen

Hej.

Hvis man er ved at uploade en fil gennem en servlet, er det så ikke muligt at få fat i tmp filen fra en anden servlet i samme session, så man kunne se størrelsen på filen mens den bliver uploaded ?
Avatar billede arne_v Ekspert
03. august 2004 - 18:09 #1
Principielt ja.

Men det er ikke en smart måde at gøre det på.

Upload status er kun interessant ved store filer.

Ved store filer er det ikke så smart at uploade til en temporær fil
og så kopiere den bagefter.

Det er meget smartere at upload til final destination, løbende opdatere
upload status, gemme upload status i session og så lade den anden
side/servlet hente upload status fra session.
Avatar billede dn666 Nybegynder
03. august 2004 - 18:30 #2
Ok.
det er store filer vi snakker om.
men jeg gør brug af MultiPartRequestWrapper i webwork2, og den skal have en property der hedder webwork.multipart.saveDir

i det jeg submitter bliver min action ikke udført før hele requesten er færdig
Avatar billede arne_v Ekspert
03. august 2004 - 18:39 #3
Hvis du skal bruge WW2, så er du jo restrictet af hvad de tilbyder af
muligheder.

Jeg har:
- en JSP side som ved submit åbner et popup vindue med en ny JSP side
  og kalder en upload servlet
- upload servlet bruger ikke temporær fil og opdaterer løbende upload
  status i session
- pop JSP siden viser så hvor meget der er uploadet og refresher
  automatisk med et givet interval

Men det passer næppe specielt godt ind i WW2.
Avatar billede arne_v Ekspert
03. august 2004 - 18:41 #4
I WW2 skal du på en eller anden måde have det filnavn fisket ud og
gemt i f.eks. session så en anden side kan finde fil størrelsen og
displaye den.

Lyder som et job for en interceptor !

Men jeg har ingen konkrete ideer til præcis hvordan.
Avatar billede dn666 Nybegynder
04. august 2004 - 11:43 #5
Jeg har taget en upload interceptor jeg fandt på opensymphony's wiki:
http://wiki.opensymphony.com/display/WW/File+Upload+Interceptor
og rettet den lidt til, og logger get/set metoderne i min action.

interceptoren bliver kaldt, men mine getter/setter metoder i min action bliver ikke kaldt ??

jeg kan ogsp se at uploadInterceptoren bliver kaldt 2 gange, har det noget med min xwork conf at gøre ?

<!DOCTYPE xwork PUBLIC "-//OpenSymphony Group//XWork 1.0//EN" "http://www.opensymphony.com/xwork/xwork-1.0.dtd">
<xwork>
<include file="webwork-default.xml" />

    <package name="filexchange" extends="webwork-default">
        <interceptors>
            <interceptor name="fileUpload" class="dk.videone.filexchange.FileUploadInterceptor">
                <param name="allowedTypes"></param>
                <param name="disallowedTypes">exe</param>
                <param name="maximumSize">209715200</param>
            </interceptor>
        </interceptors>

        <action name="upload" class="dk.videone.filexchange.UploadAction">
            <result name="input" type="velocity">WEB-INF/templates/upload.vm</result>
            <result name="error" type="velocity">WEB-INF/templates/uploaderror.vm</result>
            <result name="success" type="velocity">WEB-INF/templates/uploadsuccess.vm</result>
            <interceptor-ref name="fileUpload"/>
        </action>

        <action name="download" class="dk.videone.filexchange.DownloadAction">
            <result name="input" type="velocity">WEB-INF/templates/download.vm</result>
            <result name="error" type="velocity">WEB-INF/templates/downloaderror.vm</result>
            <result name="success" type="velocity"></result>
        </action>
    </package>
</xwork>
Avatar billede dn666 Nybegynder
04. august 2004 - 12:30 #6
OK. der var jeg lidt for hurtig...

jeg manglede
<interceptor name="params" class="com.opensymphony.xwork.interceptor.ParametersInterceptor"/>
Avatar billede arne_v Ekspert
06. august 2004 - 21:22 #7
Betyder det at det virker nu ?
Avatar billede dn666 Nybegynder
09. august 2004 - 08:57 #8
Nej jeg har ikke kunnet få fat i filnavnet...
jeg har snydt og lavet et hidden felt i formen der kopierer value fra file elementet ved submit. ikke liiige så pænt men det kan da bruges i en snæver...
Avatar billede dn666 Nybegynder
20. januar 2005 - 14:39 #9
lukker
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