日期:2014-05-18  浏览次数:20659 次

JSP新手提问,jspsmartupload上传文件类型限制问题
代码:

  mySmartUpload.setMaxFileSize(1*1024*1024);//设置上传文件的最大值为1M
                try
                {
                mySmartUpload.setAllowedFilesList( "jpg,gif,bmp ");//只允许上载此类文件
                mySmartUpload.upload();
                }
                catch(Exception   e){
        %>
        <script   language=javascript>
        alert( "只允许上传.jpg、.gif和.bmp类型图片文件 ");
        window.location.href= 'index.jsp ';
        </script>
        <%
                }


当上传图片等类型时,上传成功,但是上传.txt,.doc等其他类型的文件时,并没有运行抛出异常那条语句,网页显示的错误是:
exception  

org.apache.jasper.JasperException:   Files '   name   is   invalid   or   does   not   exist   (1205).
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:370)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:291)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:362)


root   cause  

java.lang.IllegalArgumentException:   Files '   name   is   invalid   or   does   not   exist   (1205).
com.jspsmart.upload.Files.getFile(Files.java:73)
org.apache.jsp.upload_jsp._jspService(upload_jsp.java:94)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:322)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:291)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:362)

请高手来解决一下吧....谢谢了


------解决方案--------------------
可能是因为你是在netbeans中启动的web服务器吧 你试试在外部启动 然后运行上传程序
------解决方案--------------------
晕 找到tomcat/bin下面的startup.bat 双击执行
------解决方案--------------------
自己捕获异常,显示提示信息就行了。
------解决方案--------------------
你用netbeans,当然只要重启内部的服务器就可以了~~~~
------解决方案--------------------
catch(Exception e)改成 catch(java.lang.IllegalArgumentException e) 看看
------解决方案--------------------
<input type=file onchange= "if(!/\.jpg/.test(this.value)){alert( '文件类型错误,只允许JPG/JPEG格式. ')} ">