博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JavaWeb文件上传
阅读量:2351 次
发布时间:2019-05-10

本文共 2267 字,大约阅读时间需要 7 分钟。

前端页面代码编写

Insert title here

文件上传在前端页面需要注意一下几点:

1、form表单的提交方式需要设置为post
2、form表单的enctype属性需要设置为multipart/form-data
3、input框的type应该是file
4、input框必须有name

后台servlet实现步骤及代码

// 1.创建一个DiskFileItemFactory对象/创建工厂对象DiskFileItemFactory factory = new DiskFileItemFactory();// 2.1设置上传文件的临界值,超过临界值则会保存到磁盘上(这里设置的临界值为5M)factory.setSizeThreshold(1024 * 1024 * 5);// 2.2设置文件上传的保存路径(当上传文件大小查出临界值,则会默认保存到一下目录)factory.setRepository(new File("F:\\"));// 3.创建文件上传类ServletFileUpload upload = new ServletFileUpload(factory);// 3.1设置文件上传的文件名解析格式--防止乱码upload.setHeaderEncoding("utf-8");// 4.设置上传的文件大小临界值,超出会报错(这里设置的是10M的大小,超出这个大小会报错)upload.setSizeMax(1024 * 1024 * 10);// 5.解析上传信息List
items = upload.parseRequest(request);for (FileItem item : items) { // 判断收到的数据时一般表单域还是文件上传域 if (item.isFormField()) { // 一般表单域 // getFieldName()获取的是表单项的name值 String fieldName = item.getFieldName(); // getString()获取的是表单项的value值 String value = item.getString(); value = new String(value.getBytes("iso8859-1"), "utf-8"); System.out.println("表单域name:" + fieldName + "值:" + value); } else { // 判断上传项不为空--上传文件 if (item.getName() != null && item.getName() != "") { // 上传项 // 获取上传文件的类型--可以判断是否符合规定的上传文件的要求 String contentType = item.getContentType(); // 获取上传文件的大小--可以判断是否不超过规定的上传文件要求 long size = item.getSize(); System.out.println("文件的类型:" + contentType + "文件的大小:" + size); // 这里预留部分用于判断上传文件的类型和大小是否满足要求 // 获取文件的名称--有些浏览器上传上来的文件名带有路径,因此需要割掉 String name = item.getName(); // 判断name是否包含路径 if (name.contains("//")) { // 上传的文件名包含路径,进行切割 name = name.substring(name.lastIndexOf("//") + 1); } // 将文件保存到本地 InputStream inputStream = item.getInputStream(); FileOutputStream fileOutputStream = new FileOutputStream(new File("F://") + name); byte[] b = new byte[1024]; int len = -1; while((len = inputStream.read(b)) != -1) { fileOutputStream.write(b, 0, len); } fileOutputStream.close(); inputStream.close(); } }}

转载地址:http://kpqvb.baihongyu.com/

你可能感兴趣的文章
关于C++中野指针的说明
查看>>
DirectShow中常见的RGB/YUV格式
查看>>
DirectShow系列讲座之一——DirectShow系统概述
查看>>
DirectShow系列讲座之二——Filter原理
查看>>
DirectShow系列讲座之三——开发自己的Filter
查看>>
DirectShow应用——支持Windows Media格式
查看>>
WDM 视频捕获介绍
查看>>
Directshow中的视频捕捉
查看>>
使用dbghelp生成dump文件以及事后调试分析
查看>>
vs2010编译ActiveX Control Test Container工具
查看>>
windows 内核函数前缀解析
查看>>
漫谈兼容内核之十二:Windows的APC机制
查看>>
ring0和ring3简介
查看>>
DllMain说明及如何获取DLL路径
查看>>
Detour开发包介绍(1):概述
查看>>
Detour开发包介绍(2):使用
查看>>
20.IDA-修改二进制文件、显示修改点
查看>>
Interview with Matt Pietrek - by Chris Maunder, 11 Sep 2000
查看>>
Linux下autoconf和automake使用
查看>>
Linux下Makefile快速编写入门
查看>>