29. januar 2004 - 20:26Der er
35 kommentarer og 2 løsninger
Fil upload
Jeg har en jsp test side hvor jeg ville kunne uploade filer, men der sker ikke rigtigt noget noget efter jeg hr submitet formen, jeg kan høre harddisken arbejder ved en stor fil, men jeg får ikke de dato om filen som jeg gerne ville. Det skal lige siges at koden er snuppet fra en servlet, kan jsp godt uploade filer eller er det kun servlets der kan ?
type Exception report message description The server encountered an internal error () that prevented it from fulfilling this request. exception org.apache.jasper.JasperException: javax/servlet/ServletRequest
root cause javax.servlet.ServletException: javax/servlet/ServletRequest
Bare ikke en fejl jeg kan bruge til ret meget! Nogen der har nogen bud på hvad jeg gør galt ?
Nu har jeg prøvet at lave en html fil med formen, som sender formen til en jsp side hvor jeg har fjernet if (request.getParameter("submit") != null) { så den går direkte ind. Så fejler den, og skriver en hel stack, vil du se den ?
Jeg har prøvet koden fra http://www.eksperten.dk/spm/319684 får Der skete en fejl under upload. java.lang.IllegalArgumentException: Not a directory: fil
Med <form action='Uploadservlet?dir=test' method='post' name='fil' ... enctype="multipart/form-data" ...>
og uden ?dir=test får jeg Der skete en fejl under upload. java.lang.IllegalArgumentException: saveDirectory cannot be null
Hvis min servlet ligger i /WEB-INF/classes hvor skal mappen test så ligge, bare i / ?
Hmmm det ser ud som om den prøver at gemme filen i en mappe test på skrivebordet, det har den så ikke adgang til, nok derfor den fejler. Det er åbentbart der Tomcat kigger efter filer, havde nemlig en anden servlet som læse fra en servlet på disken og den skulle ligge på skrivebordet. Hvordan retter jeg hvor tomcat skal gigge efter filer ?
Nu har jeg prøvet 2 andre eksempler og jeg får samme fejl. Kan det have noget at køre med at tomcat ikke har rettigheder til at skrive til den mappe jeg angiver ?
Ja meget, men kunne ikke lige finde et eksempel på hvordan man bruger det. Har browser nettet tyndt efter noget der kunne hjælpe, og kan se at der er mange andre der har haft samme problemer som mig
Hvor fan kan man downloade det, når man trykker på Download the binary distribution from a mirror site here kommer man til side hvor jeg ikke lige kan finde noget fileupload
overhovdet ikke, det er en komplet ren installation Tomcat 5, i et dir uden mellemrum, admin delen virker perfect, og jeg har genstartet tomcat efter hver ændring. Nu prøver jeg at hente Macromedia JRun 4
javax.servlet.ServletException: Servlet execution threw an exception at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:243) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:190) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566) at org.apache.catalina.valves.CertificatesValve.invoke(CertificatesValve.java:246) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564) at org.netbeans.modules.web.monitor.catalina.MonitorValve.invoke(MonitorValve.java:148) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943) at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2347) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566) at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:170) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:170) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:468) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943) at org.apache.catalina.connector.http.HttpProcessor.process(HttpProcessor.java:1027) at org.apache.catalina.connector.http.HttpProcessor.run(HttpProcessor.java:1125) at java.lang.Thread.run(Thread.java:534)
root cause
java.lang.NoClassDefFoundError: javax/servlet/ServletRequest at com.oreilly.servlet.MultipartRequest.(MultipartRequest.java:222) at com.oreilly.servlet.MultipartRequest.(MultipartRequest.java:109) at dk.ijam.upload.Upload.doPost(Upload.java:24) at javax.servlet.http.HttpServlet.service(HttpServlet.java:760) at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:243) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:190) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566) at org.apache.catalina.valves.CertificatesValve.invoke(CertificatesValve.java:246) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564) at org.netbeans.modules.web.monitor.catalina.MonitorValve.invoke(MonitorValve.java:148) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943) at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2347) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566) at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:170) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:170) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:468) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943) at org.apache.catalina.connector.http.HttpProcessor.process(HttpProcessor.java:1027) at org.apache.catalina.connector.http.HttpProcessor.run(HttpProcessor.java:1125) at java.lang.Thread.run(Thread.java:534)
Har oprettet en mappe der kan uppes til hvor alle har fulde rettigheder... har du nogen ide om hvad det kan være arne ?
YES nu virker det, jeg skulle bare kopiere servlet-api.jar fra \Tomcat\common\lib til mit \jre\lib\ext. Det har virket hele tiden, det var bare pga. den fil. Jeg vil godt give dig 10 point for din tid arne, selvom du ikke lige kom med den endelige løsning, så smid et svar
(men der er stadig noget mystisk, fordi man behøver normalt ikke kopiere noget til jre/lib/ext for at kunne bruge servlets i Tomcat)
Synes godt om
Ny brugerNybegynder
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.