Jsp 文件上传在IE上工作,但不在Chrome和Mozilla上工作
我正在尝试将文件从一个驱动器复制到另一个驱动器,就像我们在网页上所做的那样。我正在为此使用jspservlet组合。为了复制文件,我使用了FileChannel。 这在Eclipse的内置浏览器和IE上运行良好,但在Chrome或Mozilla上则不行。有什么建议吗 Index.jsp Eclipse上的控制台:Jsp 文件上传在IE上工作,但不在Chrome和Mozilla上工作,jsp,servlets,file-upload,Jsp,Servlets,File Upload,我正在尝试将文件从一个驱动器复制到另一个驱动器,就像我们在网页上所做的那样。我正在为此使用jspservlet组合。为了复制文件,我使用了FileChannel。 这在Eclipse的内置浏览器和IE上运行良好,但在Chrome或Mozilla上则不行。有什么建议吗 Index.jsp Eclipse上的控制台: 要实际上载文件,您需要在form元素上添加enctype=“multipart/form data”。看起来好像您不想上传文件,但只想获取文件名(/path)–但如果未设置所述enct
要实际上载文件,您需要在
form
元素上添加enctype=“multipart/form data”
。看起来好像您不想上传文件,但只想获取文件名(/path)–但如果未设置所述enctype,浏览器如何处理该文件,则未指定AFAIK。(而且出于安全原因,现代浏览器也不会提供完整的本地文件系统路径。)您不能在文件上载时使用request.getParameter
。查找Apache Commons文件上载。
form action="Upload">
<table>
<tr>
<td><input type ="file" name="file"></td>
<td><input type="submit" name="submit" value="UPLOAD"></td>
</tr>
</table>
</form>
File f = new File(request.getParameter("file").toString());
FileChannel ic = null;
FileChannel oc = null;
try
{
ic = new FileInputStream(request.getParameter("file").toString()).getChannel();
oc = new FileOutputStream("e:\\"+f.getName()).getChannel();
oc.transferFrom(ic, 0, ic.size());
}
finally
{
ic.close();
oc.close();
}
Apr 01, 2014 5:18:00 PM org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet [util.Upload] in context with path [/FileUpload] threw exception
java.lang.NullPointerException
at util.Upload.doGet(Upload.java:62)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:306)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:240)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:161)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:550)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:380)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:243)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:188)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:288)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)