这个问题在这里已经有了答案:
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>
}
这是我单击上传按钮时的结果。
最佳答案
我认为这可能是路径或一些权限问题..不知道为什么它显示为
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/