javaweb项目在2024版IDEA中的创建以及文件的上传
1.首先创建一个简单的java项目,之后载进行配置的添加

2.之后,点击untitle1,连续按下shift键两次,在搜索框中输入“添加”,英文是"add"

3.点击“添加框架支持”,选择Web应用程序,点击确定

4.添加外部库:双击src,点击库,点击左上角的加号,选择java,找到你所要使用的库,点击应用

5.点击工件,双击你刚刚选择的库,再点击应用


这样就创建好啦!
二、文件的上传:分别是两种形式,form表单形式的和ajax形式的
servlet包下的UploadServlet
package com.cyx.jsp.servlet;
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 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 org.apache.commons.io.IOUtils;
import java.io.*;
import java.util.List;
@WebServlet("/upload")
public class UploadServlet extends HttpServlet {
private static final String SAVE_DIR="D:\\桌面\\Documents\\Downloads\\Spring课件\\Spring课件\\代码\\xq-spring-project\\untitled\\out\\artifacts\\untitled_war_exploded\\upload";
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
if(ServletFileUpload.isMultipartContent(req)){
DiskFileItemFactory factory = new DiskFileItemFactory();//创建一个磁盘文件项
factory.setDefaultCharset("UTF-8");//设置编码
factory.setRepository(new File("java.io.tmpdir")); //设置临时文件存放位置
factory.setSizeThreshold(1024*4096);//设置内存缓冲区大小
ServletFileUpload upload = new ServletFileUpload(factory);//创建一个文件上传对象
upload.setFileSizeMax(1024*1024*5);//设置单个文件大小
upload.setSizeMax(50*1024*1024);//设置总文件大小
upload.setHeaderEncoding("UTF-8");//设置编码
try {
List<FileItem> fileItems = upload.parseRequest(req);//解析请求
for(FileItem fileItem:fileItems){
if(fileItem.isFormField()){//判断是否是普通的表单
System.out.println(fileItem.getFieldName()+"=>"+fileItem.getString());
}else{//走到这里说明上传的是文件
File dir=new File(SAVE_DIR);
if(!dir.exists())
dir.mkdirs();
//创建保存的文件
File saveFile=new File(dir,fileItem.getName());
InputStream is= fileItem.getInputStream();//获取上传文件的输入流
OutputStream os=new FileOutputStream(saveFile);
IOUtils.copy(is,os);//将输入流的信息拷贝至输出流中,这就是文件保存
IOUtils.closeQuietly(is);//关闭流
IOUtils.closeQuietly(os);//关闭流
}
}
resp.setCharacterEncoding("UTF-8");
resp.setContentType("text/html;charset=utf-8");
resp.getWriter().print("上传成功");
} catch (FileUploadException e) {
e.printStackTrace();
resp.setCharacterEncoding("UTF-8");
resp.setContentType("text/html;charset=utf-8");
resp.getWriter().print("上传失败");
}
}else{
throw new RuntimeException("请求头中未发现multipart/form-data");
}
}
}
index.jsp页面:
<%--
Created by IntelliJ IDEA.
User: Lenovo
Date: 2025/5/6
Time: 11:36
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>文件上传和下载</title>
</head>
<body>
<form action="upload" method="post" enctype="multipart/form-data" >
<input type="text" name="name">
<input type="file" name="uploadFile">
<input type="submit" value="上传">
</form>
<%--ajax文件上传--%>
<input type="file" id="uploadFile">
<input type="button" value="上传" id="uploadBtn">
</body>
<script type="text/javascript " src="js/jquery-3.6.0.js"></script>
<script type="text/javascript">
$(function () {
$("#uploadBtn").click(function () {
let formData=new FormData();//创建表单数据对象,用于模拟表单数据
formData.append("uploadFile",$("#uploadFile")[0].files[0]);
formData.append("name","张三");
formData.append("sex","女");
$.ajax({
url:'upload',
type:'post',
data:formData,
processData:false,//不处理发送的数据
contentType:false,//不设置Content-Type请求头
success:function (resp) {
alert(resp);
},
error:function (xhr) {
}
});
})
})
</script>
注意:存放的路径是要在out文件夹下的
结果:
显示上传成功并存放进来:

浙公网安备 33010602011771号