文件上传
程序员文章站
2024-03-20 23:06:34
...
文件上传
文件上传功能需要前台功能和后台功能共同配合完成
前台:文件上传的三要素
- 页面提供文件上传的表单元素
-
form表单enctype属性的值为multipart/form-data
- 表单的提交方式必须是
POST
,get方式无法提交大量的数据
后台:可以使用的技术有很多,在此处我们使用apache提供的commons-fileupload组件完成文件上次操作,后台的操作步骤如下
- 确认请求操作是否支持文件上传
- 创建磁盘工厂对象,用于将页面上传的文件保存到磁盘中
- 获取servet文件上传核心对象
- 读取数据
- 对读取到数据中的文件表单进行操作,并将内容写到指定位置
private void toTestUpload(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException {
request.getRequestDispatcher("/WEB-INF/pages/store/question/testFileUpload.jsp").forward(request,response);
}
private void testUpload(HttpServletRequest request,HttpServletResponse response) throws Exception {
//1.确认该操作是否支持文件上传操作,enctype="multipart/form-data"
if(ServletFileUpload.isMultipartContent(request)){
//2.创建磁盘工厂对象
DiskFileItemFactory factory = new DiskFileItemFactory();
//3.Servlet文件上传核心对象
ServletFileUpload fileUpload = new ServletFileUpload(factory);
//4.从request中读取数据
List<FileItem> fileItems = fileUpload.parseRequest(request);
for(FileItem item : fileItems){
//5.当前表单是否是文件表单
if(!item.isFormField()){
//6.从临时存储文件的地方将内容写入到指定位置
item.write(new File(this.getServletContext().getRealPath("upload"),item.getName()));
}
}
}
}
上一篇: web前端常见受攻击方式及解决办法
下一篇: 《数据库原理与应用》第三章习题