今天很是郁闷,简简单单的一个利用jsp+servlet上传我就做了一个下午,到最后还是没成功.也没啥高深的.就是利用jspsmartupload这个组件.中间代码重要的也无非是几行代码.有几点疑问.先记录下来:<wbr></wbr>
1.我通过jsp页面提交到一个servlet中去处理上传.jsp页面用的是meth="post".结果在servlet中用request.getParamter();硬是取不到值;用get是可以的.不知道怎么解决?<wbr></wbr>
2.利用jspsmartupload组件的时候.<wbr></wbr>
java 代码
- // 新建一个SmartUpload对象
- SmartUpload su = new SmartUpload();
- // 获得上传文件的全物理路径
- String fpath=request.getParameter("file1");
- System.out.println(fpath);
- //获得上传文件的文件名
- String[] files=fpath.split("\\\\");
- String fname = files[files.length-1];
- System.out.println(fname);
- try {
- System.out.println("ddddd");
- // 上传初始化
- su.initialize(pageContext);
- System.out.println("cccc");
- // 限制每个上传文件的最大长度。
- // su.setMaxFileSize(10000000);
- // 限制总上传数据的长度。
- // su.setTotalMaxFileSize(20000000);
- // 设定允许上传的文件(通过扩展名限制),仅允许doc,txt文件。
- su.setAllowedFilesList("doc,txt");
- // 设定禁止上传的文件(通过扩展名限制),禁止上传带有exe,bat,
- // jsp,htm,html扩展名的文件和没有扩展名的文件。
- // su.setDeniedFilesList("exe,bat,jsp,htm,html,,");
- // 上传文件
- su.upload();
- su.save("upload/");
可是在servlet里面是没有pageContext这个隐士对象的.怎么初始化这个上传组件呢?
java 代码
- java.lang.NegativeArraySizeException
- at com.jspsmart.upload.SmartUpload.upload(SmartUpload.java:218)
- at org.apache.jsp.result_jsp._jspService(result_jsp.java:85)
- at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
- at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
- at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:328)
- at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:315)
- at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
- at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
- at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
- at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
- at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:210)
- at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174)
- at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
- at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
- at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
- at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151)
- at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:870)
- at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
- at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
- at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
- at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:685)
- at java.lang.Thread.run(Thread.java:595)
唉..不知道是我把问题弄复杂化了还是怎么的..忘一二啊.
3.当我在把处理页面由servlet转化到jsp页面中的时候,pageContext的问题得到了解决.但是同上的代码.却在su.upload()方法的时候抛出异常.<wbr></wbr>