jsp,servlet文件上传问题完善
2024-10-16 16:43:57
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"));
}
最新文章
- Tomcat启动失败Unrecognized Windows Sockets error: 0: JVM_Bind
- 移动互联网实战--Apple的APNS桩推送服务的实现(1)
- 在阿里云 centos 6.3上面安装php5.2(转)
- Python-While刷博爬虫
- javascript - 清空一个 array
- 转 C#开发微信门户及应用(1)--开始使用微信接口
- linux进程地址空间详解(转载)
- XX cannot be resolved to a type
- java 简单的数据增删该查
- codeforces 236A . Boy or Girl(串水问题)
- API CLOUD 快捷键
- C++运算符优先级 案例1
- 实践作业1:测试管理工具实践 Day2
- 基于busybox的Linux小系统制作 (initrd)
- Android Preference详解
- 并发concurrent---1
- oo第二次博客总结
- Graphviz的安装 - windows环境下
- centos 7 服务管理
- 在busybox里使用ulimit命令
热门文章
- ASS/SSA字幕格式
- tf.variable_scope()和tf.name_scope()
- 第08节-开源蓝牙协议栈BTStack数据处理
- Java多线程编程核心技术-第4章-Lock的使用-读书笔记
- go安装及使用
- face-api.js:一个在浏览器中进行人脸识别的 JavaScript 接口
- HDU6223 &;&; 2017沈阳ICPC: G. Infinite Fraction Path——特殊图&;&;暴力
- 有关OutputDebugString的一点儿事实
- STL 二分查找
- 关于三层架构和MVC模式的思考