Java Servlet 应用程序文件上传失败

标签 java servlets

这个问题在这里已经有了答案:





How can I upload files to a server using JSP/Servlet?

(14 个回答)


2年前关闭。




我正在尝试使用 java servlet 创建文件上传并存储到本地目录。我添加了 cos.jr 文件。我在 roor 目录中添加了一个新文件夹名称是新的。但是当我点击按钮文件上传它给我以下错误。

java.lang.IllegalArgumentException: 不是目录: d:/new

这是 html 。

<html>  
<body>  
<form action="FileUploadServlet" method="post" enctype="multipart/form-data">  
Select File:<input type="file" name="fname"/><br/>  
<input type="submit" value="upload"/>  
</form>  
</body>  
</html> 

这是 servlet 代码。
package Servlet.org;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.oreilly.servlet.MultipartRequest; 


public class FileUploadServlet extends HttpServlet {

        protected void processRequest(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
            response.setContentType("text/html;charset=UTF-8");

        }


        @Override
        protected void doPost(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
            processRequest(request, response);
            response.setContentType("text/html");  
             PrintWriter out = response.getWriter();  

           MultipartRequest m=new MultipartRequest(request,"d:/JAVAServlet/new");  
           out.print("successfully uploaded");
        }


        @Override
        public String getServletInfo() {
            return "Short description";
        }// </editor-fold>

    }

这是我单击上传按钮时的结果。

enter image description here

最佳答案

我认为这可能是路径或一些权限问题..不知道为什么它显示为
d:/new而不是 d:/JAVAServlet/new .试试下面的代码,看看是否创建了目录。

 public static void main(String[] args) {
      String saveDirectory = "d:" + File.separator + "JAVAServlet" + File.separator+ "new";
      File dir = new File(saveDirectory);

      if(!dir.isDirectory()){
         throw new IllegalArgumentException("Not a directory: " + saveDirectory);
      }
   }

目录创建权限或路径可能有问题。
或尝试使用 File.separator而不是 /"d:" + File.separator + "JAVAServlet" + File.separator+ "new"

关于Java Servlet 应用程序文件上传失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59696315/

相关文章:

java - Activiti中查询任务开始和结束日期

java - 如果 2 TextView 在 ConstraintLayout 中有长文本,如何缩小第一个 TextView 而不是第二个?

java - 在 Spring MVC 的 servlet 映射中,如何映射 url 模式目录的根目录?

java - 如何将文件从 Java servlet 上传到 Tomcat/webapps 中 Web 服务器上的某个位置

java - Jetty 在 Java HttpServlet 上总是返回 400 状态代码

session - session 过期后如何重定向到登录页面?

java - 如何在 Jetty 9.4.x 的 servlet 上下文中动态添加和删除 servlet?

java - Java 中与构造函数相关的错误

java - 如何在Java中从内存中逐位读取/写入

java - 在 Fragment Pager Adapter 中保留 Fragment 的实例状态