Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/gwt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 文件未在特定目标上载?_Java_Jsp_Servlets - Fatal编程技术网

Java 文件未在特定目标上载?

Java 文件未在特定目标上载?,java,jsp,servlets,Java,Jsp,Servlets,我刚刚在某个地方学会了将文件上传到文件夹中。我也遵循了那个教程,它也很有效 当我给出路径C:\MyFile时,它正在上载我的文件 我正在使用EclipseIDE,现在我已经在我的项目中创建了一个名为files的文件夹。不幸的是,它没有上传,你可以看到一个屏幕截图,在那里我创建了一个文件夹来上传我的文件 它不起作用了你能帮帮我吗 我得到一个错误,如下所示: SEVERE: Allocate exception for servlet UploadFile java.lang.NullPointe

我刚刚在某个地方学会了将文件上传到文件夹中。我也遵循了那个教程,它也很有效

当我给出路径C:\MyFile时,它正在上载我的文件

我正在使用EclipseIDE,现在我已经在我的项目中创建了一个名为files的文件夹。不幸的是,它没有上传,你可以看到一个屏幕截图,在那里我创建了一个文件夹来上传我的文件

它不起作用了你能帮帮我吗

我得到一个错误,如下所示:

SEVERE: Allocate exception for servlet UploadFile
java.lang.NullPointerException
    at javax.servlet.GenericServlet.getServletContext(GenericServlet.java:125)
    at com.fileupload.UploadFile.<init>(UploadFile.java:20)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
    at java.lang.reflect.Constructor.newInstance(Unknown Source)
    at java.lang.Class.newInstance(Unknown Source)
    at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:154)
    at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1099)
    at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:830)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:137)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:107)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:504)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:155)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:76)
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:934)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:90)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:515)
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1012)
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:642)
    at org.apache.coyote.http11.Http11NioProtocol$Http11ConnectionHandler.process(Http11NioProtocol.java:223)
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1597)
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1555)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)
以下是我的UploadFile.java源代码:

记得吗

当我以C:\Files的形式给出进入UPLOAD\u目录的路径时。然后它就开始工作了。。但是当我在我的eclipse项目中创建一个文件夹时,请参见上面的屏幕截图。它表示文件未上载

编辑

现在我正在使用:

私有最终字符串UPLOAD_DIRECTORY=getServletContext.getRealPath/files/

但得到的错误如下:

SEVERE: Allocate exception for servlet UploadFile
java.lang.NullPointerException
    at javax.servlet.GenericServlet.getServletContext(GenericServlet.java:125)
    at com.fileupload.UploadFile.<init>(UploadFile.java:20)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
    at java.lang.reflect.Constructor.newInstance(Unknown Source)
    at java.lang.Class.newInstance(Unknown Source)
    at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:154)
    at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1099)
    at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:830)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:137)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:107)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:504)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:155)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:76)
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:934)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:90)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:515)
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1012)
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:642)
    at org.apache.coyote.http11.Http11NioProtocol$Http11ConnectionHandler.process(Http11NioProtocol.java:223)
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1597)
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1555)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)

当然,我们将非常感谢您的帮助

使用以下代码获取目录的实际路径:

getServletContext().getRealPath("/files/");
有关此方法的更多信息,请参见

如果在init方法中调用此方法,请调用super.initconfig;在init方法的第一行,建议使用或使用以下代码:

config.getServletContext().getRealPath("/files/");

你,还有那些投票否决了这个糟糕的答案并因此破坏了Stack Overflow的可信度的人,请阅读。@BalusC:你认为我应该将其标记为重复的吗?我做了与你告诉我的相同的事情,但现在我出现了空指针异常错误:javax.servlet.GenericServlet.getServletContextGenericServlet.java:125在com.fileupload.UploadFile.UploadFile.java:20@mohanlal:我更新了我的答案。仍然没有工作!!:在这里问我的问题不好吗你能帮我一下吗,我仍然有空指针异常。。我编辑了我的问题,请看。。先生,先生,我编辑过。。。先生,请看一看。。请..这是罪魁祸首,因为在你的问题中,现在我已经在我的项目中创建了一个名为文件的文件夹。这就是答案,您不应该将上传的文件保存在重复链接中接受答案的deploy文件夹中。
getServletContext().getRealPath("/files/");
config.getServletContext().getRealPath("/files/");