精简Servlet3.0进行图片上传
来源:互联网 发布:c语言逻辑取反 编辑:程序博客网 时间:2024/06/07 21:49
上传文件的方法就哪几种,但总感觉麻烦一点也不精简,就struts2的方法稍好一点。
下面的方法在之前写的Servlet3.0方法之上进行再次精简,应该是最易懂易用的,但是普通表单域是不能通过req.getParameter来获得(因为二进制流解析),来看看吧~
1.upload.jsp 文件上传表单
<body>
<div class="form" align="center">
<form action="UploadServlet" enctype="multipart/form-data" method="post" >
select:<input type="file" name="file">
param:<input name="param"/><br/>
<input type="submit" value="submit">
</form>
</div>
</body>
2.UploadServlet.java 文件上
@WebServlet("/UploadServlet")
@MultipartConfig
public class UploadServlet extends HttpServlet{
private String filePath; //文件保存路径
private static final long serialVersionUID = 3465909202303185511L;
@Override
public void init(ServletConfig config) throws ServletException {
// TODO Auto-generated method stub
super.init(config);
}
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
// TODO Auto-generated method stub
super.doGet(req, resp);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
// 对请求包设置编码
req.setCharacterEncoding("utf-8");
// 告知tomcat如何编码,浏览器如何解码
resp.setContentType("text/html; charset=utf-8");
//获得项目的根目录,并设计文件保存路径
filePath=getServletContext().getRealPath("/image");
// 为了简单,后面也直接就以fileName作为保存文件的名称
SimpleDateFormat dateFormat=new SimpleDateFormat("yyMMddHHmmss");
String fileName=dateFormat.format(new Date())+".jpg";
//获取文件类型和大小
Part part = req.getPart("file");
System.out.println(part.getContentType());
System.out.println(part.getSize());
//获得文本字段,下面方法不可行,只能解析英文和数字,中文即使编码也不行。
String param=req.getParameter("param");
System.out.println("只能中文哦:"+param);
Collection<String> headerNames = part.getHeaderNames();
// 遍历文件上传域的Header Name
for (String headerName : headerNames) {
System.out.println(headerName + "---->" + part.getHeader(headerName));
}
// 将文件保存到项目下的uploads文件夹下,为了简单这里没写判断目录是否存在及创建目录的操作,要先确保该目录已经存在
part.write(filePath + "/" + fileName);
System.out.println("文件保存在:"+filePath+fileName);
req.getRequestDispatcher("/index.jsp").forward(req, resp);
}
}
- 精简Servlet3.0进行图片上传
- Servlet3.0上传图片示例
- 原生servlet3.0中进行文件上传
- @MultipartConfig,Servlet3.0通过Part进行文件上传
- JavaEE6-Servlet3.0上传
- servlet3.0上传文件
- servlet3.0文件上传
- Servlet3.0文件上传
- servlet3.0 文件上传
- Servlet3.0的文件上传
- Servlet3.0现实文件上传
- servlet3.0多文件上传
- Servlet3.0 上传文件实例
- 【Demo】Servlet3.0 上传文件
- servlet3.0处理文件上传
- 使用Servlet3.0上传文件
- servlet3.0 part上传文件
- JAVA学习笔记_使用Servlet3.0上传图片,无法使用part.getSubmittedFileName()方法解决
- hdu 1043 /poj 1077 Eight(经典八数码问题,BFS+康托展开)
- VC++ MFC 系统菜单添加子菜单 CMENU submenu GetSystemMenu
- C++中构造函数,拷贝构造函数和赋值函数的区别和实现
- <poj2367>Genealogical tree
- 2015最流行的Android组件、工具、框架大全
- 精简Servlet3.0进行图片上传
- 虚拟内存
- HDU 3237 Help Bubu(DP)
- Unable to start activity ComponentInfo 解决方法
- centos7下 nginx配置upstream 不能访问另一台服务器外网IP的问题
- 换句话说 —— 不同的解释
- 文章标题
- 20160805 【PS笔记】《李涛(国内最好的PS讲师)主讲.PHOTOSHOP.CS2(共24集)]清晰RMVB》
- SCU 2113 数字游戏