IDEA Tomcat部署
为什么IDEA启动JavaWeb项目,选好文件上传,会报错
Type 异常报告 消息 C:\My Work Material\idea\final-project\upload\out\artifacts\upload_war_exploded\upload\12312313.txt (系统找不到指定的路径。) 描述 服务器遇到一个意外的情况,阻止它完成请求。 Exception java.io.FileNotFoundException: C:\My Work Material\idea\final-project\upload\out\artifacts\upload_war_exploded\upload\12312313.txt (系统找不到指定的路径。) java.io.FileOutputStream.open0(Native Method) java.io.FileOutputStream.open(FileOutputStream.java:270) java.io.FileOutputStream.<init>(FileOutputStream.java:213) java.io.FileOutputStream.<init>(FileOutputStream.java:101) com.imooc.servlet.UploadServlet.doPost(UploadServlet.java:52) javax.servlet.http.HttpServlet.service(HttpServlet.java:660) javax.servlet.http.HttpServlet.service(HttpServlet.java:741) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) Note 主要问题的全部 stack 信息可以在 server logs 里查看
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>$Title$</title>
</head>
<body>
<h1>文件上传</h1>
<form action="${pageContext.request.contextPath}/UploadServlet" enctype="multipart/form-data" method="post">
<input type="text" name="name"></br>
<input type="file" name="“upload”"></br>
<input type="submit" value="上传">
</form>
</body>
</html>package com.imooc.servlet;
import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileUploadException;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.List;
@WebServlet(urlPatterns = "/UploadServlet")
public class UploadServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// 1.创建磁盘文件项工厂
DiskFileItemFactory diskFileItemFactory = new DiskFileItemFactory();
// 2.创建核心解析类
ServletFileUpload fileUpload = new ServletFileUpload(diskFileItemFactory);
// 3.解析请求对象,将请求分成几个部分
try {
List<FileItem> fileItem = fileUpload.parseRequest(request);
// 便利集合,获取每个部分的对象
for (FileItem fileItem1 : fileItem) {
// 判断是普通项,还是文件上传项
if (fileItem1.isFormField()) {
// 普通项
// 获得普通项的名称
String name = fileItem1.getFieldName();
// 获得普通项的值
String value = fileItem1.getString("utf-8");
System.out.println(name + " " + value);
} else {
// 文件上传项
// 获得文件项名称
String filename = fileItem1.getName();
// 获得文件大小
long size = fileItem1.getSize();
// 获得文件输入流:获得文件具体内容
InputStream is = fileItem1.getInputStream();
// 将文件写入服务器某个路径
// 1.获取upload文件夹的磁盘绝对路径
String path = getServletContext().getRealPath("/upload");
System.out.println(path);
// 2.创建输出流,与输入流进行对接
OutputStream os = new FileOutputStream(path + "\\" + filename);
// 3.对接
int len = 0;
byte[] b = new byte[1024];
while ((len = is.read(b)) != -1) {
os.write(b, 0, len);
}
is.close();
os.close();
}
}
} catch (FileUploadException e) {
e.printStackTrace();
}
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
}
}12
收起
正在回答 回答被采纳积分+1
2回答
2. 从网页搭建入门JavaWeb
- 参与学习 人
- 提交作业 676 份
- 解答问题 9666 个
本阶段将从前端网页搭建入手,到Java Web基础,前后端结合助你完成Java Web小白的蜕变!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星