jsp,servlet文件上传问题完善
1. 上传文件时文件名中文乱码 upload.setHeaderEncoding("utf-8");
有个疑惑: 不管设置不设置都不乱码,但是刘帅龙老师讲的时候出现了乱码 .
2. 上传文件的目标文件夹必须指定, 若不指定怎么解决?
File file = new File("E:/img");
if (!file.exists()) {
file.mkdirs();
}
item.write(new File(file, item.getName()));
3. 上传文件至当前服务器目录下. 指定目录为
File file = new File("D:/Develop/tomcat/apache-tomcat-7.0.94/webapps/studentManage/upload");
4. 若文件名相同则会覆盖原来的, 与实际需求相违 // 随机生成文件名不带拓展名
String uuid = UUID.randomUUID().toString(); // 获取文件拓展名 (带点的)
2 String ext = item.getName().substring(item.getName().lastIndexOf(".")); //
3 System.out.println(ext); // .jpg
4 // 拼接成完整的文件名
5 String fileName = uuid.concat(ext);
5. 指定上传文件的大小
// 指定文件大小, 超出范围则向前台发送"文件大小超出范围20K"
if (item.getSize() > 1024 * 20) { // 限定文件大小为20K
req.setAttribute("msg", "文件大小超出范围20K");
req.getRequestDispatcher("/jsp/regist.jsp").forward(req, resp); return;
}
6. 指定上传文件的类型
// 指定文件的类型
if (!(".jpg".equals(ext) || ".png".equals(ext) || ".gif".equals(ext))) {
req.setAttribute("msg", "上传的文件格式不是.jpg或者.png或者.gif");
req.getRequestDispatcher("/jsp/regist.jsp").forward(req, resp);
return;
}
7.获取普通表单项的值
// 注意: 由于所有的表单项都以二进制的形式存储在了list中, 所以不能采用req.getParameter();
// 的方式获取普通表单项的值
if ("uname".equals(item.getFieldName())) {
uname = item.getString("utf-8"); // 设置utf-8防止中文乱码
} if ("age".equals(item.getFieldName())) {
age = Integer.parseInt(item.getString("utf-8"));
} if ("score".equals(item.getFieldName())) {
score = Double.parseDouble(item.getString("utf-8"));
}
jsp,servlet文件上传问题完善的更多相关文章
- jsp Servlet 文件上传
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding= ...
- Servlet文件上传下载
今天我们来学习Servlet文件上传下载 Servlet文件上传主要是使用了ServletInputStream读取流的方法,其读取方法与普通的文件流相同. 一.文件上传相关原理 第一步,构建一个up ...
- ServletFileUpload(Servlet文件上传)
//**文件上传** form表单提交必须指定Enctype 属性指定将数据回发到服务器时浏览器使用的编码类型"multipart/form-data" //1.创建磁盘文件项目工 ...
- java web学习总结(二十四) -------------------Servlet文件上传和下载的实现
在Web应用系统开发中,文件上传和下载功能是非常常用的功能,今天来讲一下JavaWeb中的文件上传和下载功能的实现. 对于文件上传,浏览器在上传的过程中是将文件以流的形式提交到服务器端的,如果直接使用 ...
- JSP多文件上传到服务器
问题描述: 作为一个Java开发Web方向的程序员,很重要的一个功能,就是上传文件功能是一定要掌握的,今天整理了一下代码. 1.JSP显示界面代码和动态添加上传文件个数. <%@ page la ...
- Android+jsp +html 文件上传案例 已测试 成功通过
我文件上传一直是广大读者一个问题 今天就把成功案例写下 javaweb 网页前段 <%@ page language="java" import="java.uti ...
- jsp简易文件上传(common.fileupload)
昨天开始重新架构我的V&View(维视),之前写文章使用的是一个kindediter的插件,挺好用的.最近不知道咋了,出现了些小问题.早在写V&View的时候就想用以下两种方法实现文章 ...
- JSP+Servlet实现上传下载
0.项目结构 1.在WebRoot下创建index.jsp页面 <%@ page language="java" import="java.util.*" ...
- jsp实现文件上传下载
文件上传: upload.jsp <form action="uploadServlet" method="post" enctype="mul ...
随机推荐
- 【java异常】expected at least 1 bean which qualifies as autowire candidate for this depende
1.查看接口实现类是否加入注解,如service.repository等 2.查看spring配置文件是否自动扫描包 <context:component-scan base-packag ...
- qhclass
http://www.qhclass.com/classroom/62/courses
- Kinect v2控制鼠标原理分析和源码
https://blog.csdn.net/baolinq/article/details/54381284 此程序为利用Kinect v2实现用手指隔空控制鼠标,是我另一个项目的一部分,因为在另外那 ...
- ZBX_TCP_READ() time out windows
zabbix 客户端无法推送数据,日志显示在启动的时候ZBX_TCP_READ() time out windows, 场景:agent 到proxy的10051通,proxy到agnet的10050 ...
- Linux下进程间通信方式——信号量(Semaphore)
1.信号量 信号量本质上是一个计数器(不设置全局变量是因为进程间是相互独立的,而这不一定能看到,看到也不能保证++引用计数为原子操作),用于多进程对共享数据对象的读取,它和管道有所不同,它不以传送数据 ...
- 安装Ruby 2.3.0
安装最新的redis集群需要用到的rb脚本要ruby2.3.0版本,centos7默认的是2.0.0,很显然报错不行,所以安装呗,使用rvm安装,安装步骤如下: yum -y install curl ...
- day 16
Weep no more, no sigh, nor groan. Sorrow calls no time that's gone. 别哭泣,别叹息,别呻吟:悲伤唤不回流逝的时光.
- 微信网页分享使用了jssdk,分享图还是不显示的几个坑
坑爹的微信分享,设置图片链接必须要满足如下条件: 1. 微信分享图链接必须是绝对路径,写相对地址不行. 比如图片地址写成 './assets/images/share.jpg' 不行!!! 必须写成 ...
- python requests 上传excel数据流
headers=self.headers #获取导入模版 file_home = self.import_template log.info(file_home) wb = load_workbook ...
- 使用canvas实现图片预览、缩放(压缩)以及生成文件下载
参考 https://www.runoob.com/html/html5-canvas.html https://www.cnblogs.com/yuanzhiguo/p/8288822.html h ...