web后端 文件上传
需要Commons-fileupload和commons-io两个jar包.可搜索apache commons下载
jar复制在项目下的web->WEB-INF->lib下 复制在apache-tomcat本地文件的lib下
jsp中 :注意 form的 method="post" enctype="multipart/form-data" 注意input 的name要加上 要加上,不然找不到
servlet中:
package action;
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.File;
import java.io.IOException;
import java.util.List;
/**
* Created by Au on 2015/11/25.
*/
@WebServlet(name = "action")
public class action extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
try {
upLoadFile(request,response);
} catch (Exception e) {
e.printStackTrace();
}
}
private void upLoadFile(HttpServletRequest request, HttpServletResponse response) throws Exception {
DiskFileItemFactory diskFileItemFactory=new DiskFileItemFactory();
// 构建文件上传类
ServletFileUpload servletFileUpload=new ServletFileUpload(diskFileItemFactory);
List<FileItem> list=servletFileUpload.parseRequest(request);
for(FileItem fileItem:list) {
// 判断是文字还是文件
if(fileItem.isFormField()){
}else {
String image = fileItem.getName();
String upload_path = request.getSession().getServletContext().getRealPath("/upload3");
// 创建那个文件夹
if(!new File(upload_path).exists()){
new File(upload_path).mkdirs();
}
File real_path = new File(upload_path + "/" + image);
fileItem.write(real_path);
}
}
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doPost(request,response);
}
}
标签:
web后端 文件上传
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器