web项目中头像的简单修改
2013-09-18 19:03
176 查看
头像修改主要用到了文件的上传处理,首先要设置表单数据的提交方式以及数据的传输方式,上传图片在获得图片名称的同时还要将图片以数据的形式传送到服务端,创建文件的输入输出流,获取上传文件的路径,以及制定目录下的全路径,上传完后把头像更新到数据库中,核心代码如下:
//修改头像
public void avatar(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//处理文件上传
if(ServletFileUpload.isMultipartContent(request)){ //检查是否为multipart表单数据
try{
ServletFileUpload upload = new ServletFileUpload(new DiskFileItemFactory());
List<FileItem> items = upload.parseRequest(request); //解析请求
int size = items == null ? 0 : items.size();
for(int i = 0; i < size; i++){
FileItem item=(FileItem)items.get(i); //获取方法消息体中的每一段内容。
if (item.isFormField()) {//如果是普通表单项目
String fieldName = item.getFieldName(); //参数名
String value = item.getString(); //参数值
}else{ //文件
String fileName = item.getName();//获得上传的文件全路径名
//截取后缀名"aaa.bbb.png"
String str = fileName.substring(fileName.lastIndexOf('.'));
String contentType = item.getContentType();
long sizeInBytes = item.getSize();
InputStream uploadedStream = null;
OutputStream os = null;
try{
uploadedStream = item.getInputStream();
//使用IO流操作。。。
//获取Web程序根目录下指定目录的全路径名
File basePath = new File(this.getServletContext().getRealPath("/avatar"));
Acc acc = (Acc)request.getSession().getAttribute("curr_admin");
String lname = acc.getLname();
File dest = new File(basePath, lname + str);
os = new FileOutputStream(dest);
IOUtils.copy(uploadedStream, os);
//把新头像地址更新到数据库
acc.setAvatar(dest.getName());
accDao.edit(acc);
request.getSession().setAttribute("msg", "头像修改成功!");
} catch(Exception e){
request.getSession().setAttribute("msg", "头像修改失败!");
e.printStackTrace();
}finally{
IOUtils.closeQuietly(uploadedStream);
IOUtils.closeQuietly(os);
}
}
}
} catch(Exception e){
e.printStackTrace();
}
}else{
request.getSession().setAttribute("msg", "头像修改失败!");
}
response.sendRedirect( request.getContextPath() + "/mng/acc_avatar.jsp");
}
}
//修改头像
public void avatar(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//处理文件上传
if(ServletFileUpload.isMultipartContent(request)){ //检查是否为multipart表单数据
try{
ServletFileUpload upload = new ServletFileUpload(new DiskFileItemFactory());
List<FileItem> items = upload.parseRequest(request); //解析请求
int size = items == null ? 0 : items.size();
for(int i = 0; i < size; i++){
FileItem item=(FileItem)items.get(i); //获取方法消息体中的每一段内容。
if (item.isFormField()) {//如果是普通表单项目
String fieldName = item.getFieldName(); //参数名
String value = item.getString(); //参数值
}else{ //文件
String fileName = item.getName();//获得上传的文件全路径名
//截取后缀名"aaa.bbb.png"
String str = fileName.substring(fileName.lastIndexOf('.'));
String contentType = item.getContentType();
long sizeInBytes = item.getSize();
InputStream uploadedStream = null;
OutputStream os = null;
try{
uploadedStream = item.getInputStream();
//使用IO流操作。。。
//获取Web程序根目录下指定目录的全路径名
File basePath = new File(this.getServletContext().getRealPath("/avatar"));
Acc acc = (Acc)request.getSession().getAttribute("curr_admin");
String lname = acc.getLname();
File dest = new File(basePath, lname + str);
os = new FileOutputStream(dest);
IOUtils.copy(uploadedStream, os);
//把新头像地址更新到数据库
acc.setAvatar(dest.getName());
accDao.edit(acc);
request.getSession().setAttribute("msg", "头像修改成功!");
} catch(Exception e){
request.getSession().setAttribute("msg", "头像修改失败!");
e.printStackTrace();
}finally{
IOUtils.closeQuietly(uploadedStream);
IOUtils.closeQuietly(os);
}
}
}
} catch(Exception e){
e.printStackTrace();
}
}else{
request.getSession().setAttribute("msg", "头像修改失败!");
}
response.sendRedirect( request.getContextPath() + "/mng/acc_avatar.jsp");
}
}
相关文章推荐
- 简单的修改项目中的头像
- 记录我的第一个用ssh框架开发的web项目——实现简单的登录注册以及增删查改(一)
- java maven、springmvc、mybatis 搭建简单Web项目学习笔记
- 新手教你学Spring4.0+Maven构建超级简单的Web项目(一)
- web项目发布到服务器上,但是修改的css和js文件没有起作用,显示的还是之前没有修改的代码
- 简单web项目编码问题
- 修改复制后的WEB项目的根路径
- javaEE之修改javaWeb服务器的项目名时需要注意的问题
- web项目使用freemarker的简单例子
- [转]Idea2016 使用Maven配置简单Web项目(受益比较多的一篇)
- java在web项目中使用UrlRewrite替换或修改访问路径
- 简单的Java Web项目(2)——session实现简单的购物车
- JavaEE完全实战详解笔记--在Eclipse中创建一个简单的web项目
- Web开发项目简单流程
- 复制web项目时注意修改web项目名
- eclipse maven 简单web项目
- 从零使用docker简单部署一个javaweb项目与mysql数据库
- Tomcat部署项目修改浏览器上猫咪头像
- web-前端之员工界面修改的form表单,其中包含各种表单的简单表达
- 一个简单的Java Web项目