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 ...
随机推荐
- Leetcode79 Word Search
题目描述 Given a 2D board and a word, find if the word exists in the grid. The word can be constructed f ...
- 逆向破解之160个CrackMe —— 031
CrackMe —— 031 160 CrackMe 是比较适合新手学习逆向破解的CrackMe的一个集合一共160个待逆向破解的程序 CrackMe:它们都是一些公开给别人尝试破解的小程序,制作 c ...
- I2C协议简介
主从芯片如何传输数据 AT24C02是一个存储芯片,需要把数据从ARM板发给AT24C02,也需要从AT24C02读取数据. I2C是一个主从结构,Master发起传输,slave接收或回应 一主多从 ...
- matlab-线性回归
1.调用函数regress(Y,X,alpha),plpha是置信度,如果直接用regress(Y,X)则默认置信度为0.05,Y是一个 的列向量,X是一个 的矩阵,其中第一列是全1向量. 2.函数返 ...
- 移动端事件(touchstart、touchmove、touchend)--移动端开发整理笔记(三)
移动端事件 三个事件 touchstart 手指触摸 相当于PC端 mousedown touchend 手指抬起 相当于PC端 mouseup touchmove 手指滑动 相当于PC端 mousm ...
- Educational Codeforces Round 78 (Rated for Div. 2) D. Segment Tree
链接: https://codeforces.com/contest/1278/problem/D 题意: As the name of the task implies, you are asked ...
- 【PL/SQL】左侧窗口没了
- VMware Workstation创建Windows2012server虚拟机
镜像文件需要下载到物理机 3.需要输入iso文件 对应的密钥 定义普通的用户名与密码 4.指定按照路径 5. 大概都是下一步 根据提示需要重启 选择带GUI的服务器进行安装,因为windows命令行模 ...
- three.js 加载STL文件
注意: TrackballControls.js 和 TDSLoader.js 都引用了 three.module.js,特别注意引用的路径 比如: 直接代码咯 <!DOCTYPE html&g ...
- (转)Qt中文手册 之 QApplication
QApplication管理GUI程序的控制流和主要设置. QApplication包含由窗口系统和其他来源处理过和发送过的主事件循环.它也处理应用程序的初始化和收尾工作,并提供对话管理.QAppli ...