博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
上传文件
阅读量:4499 次
发布时间:2019-06-08

本文共 4492 字,大约阅读时间需要 14 分钟。

一  form表单上传文件

前端

form表单上传文件    
用户名
头像

实体类

package com.qy.entity;public class User {    private String username;    private String myPic;    public String getUsername() {        return username;    }    public void setUsername(String username) {        this.username = username;    }    public String getMyPic() {        return myPic;    }    public void setMyPic(String myPic) {        this.myPic = myPic;    }        }

 

后端servlet

package com.qy.servlet;import java.io.IOException;import java.util.Arrays;import javax.servlet.ServletException;import javax.servlet.annotation.MultipartConfig;import javax.servlet.annotation.WebServlet;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.servlet.http.Part;import com.qy.entity.User;@WebServlet("/saveUser.do")@MultipartConfigpublic class UserSaveServlet extends HttpServlet{        @Override    protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {        String username = request.getParameter("username");        Part part = request.getPart("myPic");        System.out.println(part);        //验证文件大小,后缀是否满足要求,获取原始文件名        long size = part.getSize();        //1m  1024*1024        if(size > 1024*1024){            System.out.println("文件大于1M!");            return ;        }        //        String file = part.getHeader("Content-Disposition");//form-data; name="myPic"; filename="1024.jpg"        //获取后缀  截取  .          String suffix = file.substring(file.lastIndexOf(".")+1, file.length()-1);        //比对后缀格式是否正确        String[] suffixs = {"jpg","png","gif"};content.lastIndexOf("=\"")+2,content.lastIndexOf("\"")        boolean flag = Arrays.asList(suffixs).contains(suffix);        if(!flag){            System.out.println("文件格式不正确!");            return ;        }        //获取保存路径        String path = request.getServletContext().getRealPath("/images/");                //保存文件到磁盘        String filename = System.currentTimeMillis()+"."+suffix;        part.write(path+filename);                        //保存用户数据到数据库        User user = new User();        user.setUsername(username);        user.setMyPic("images/"+filename);                //调用dao层方法保存对象                //控制页面跳转    }}

ajax上传文件

前端

ajax上传文件  

实体类与上面相同

后端servlet

package com.qy.servlet;import java.io.IOException;import java.util.Arrays;import javax.servlet.ServletException;import javax.servlet.annotation.MultipartConfig;import javax.servlet.annotation.WebServlet;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.servlet.http.Part;import com.qy.entity.User;@WebServlet("/saveUser2.do")@MultipartConfigpublic class UserSaveServlet2 extends HttpServlet{        @Override    protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {        response.setContentType("text/html;charset=utf-8");                String username = request.getParameter("username");        Part part = request.getPart("myPic");        //验证文件大小,后缀是否满足要求,获取原始文件名        long size = part.getSize();        //1m  1024*1024        if(size > 1024*1024){            System.out.println("文件大于1M!");            response.getWriter().append("文件大于1M!");            return ;        }        //        String file = part.getHeader("Content-Disposition");//form-data; name="myPic"; filename="1024.jpg"        //获取后缀  截取  .          String suffix = file.substring(file.lastIndexOf(".")+1, file.length()-1);        //比对后缀格式是否正确        String[] suffixs = {"jpg","png","gif"};        boolean flag = Arrays.asList(suffixs).contains(suffix);        if(!flag){            System.out.println("文件格式不正确!");            response.getWriter().append("文件格式不正确!");            return ;        }        //获取保存路径        String path = request.getServletContext().getRealPath("/images/");                //保存文件到磁盘        String filename = System.currentTimeMillis()+"."+suffix;        part.write(path+filename);                        //保存用户数据到数据库        User user = new User();        user.setUsername(username);        user.setMyPic("images/"+filename);                //调用dao层方法保存对象                //返回保存成功        response.getWriter().append("上传成功!");    }}

 

转载于:https://www.cnblogs.com/songff/p/songff1.html

你可能感兴趣的文章
C++学习笔记-STL
查看>>
UVA 11552 Fewest Flops(区间dp)
查看>>
Supervisor安装与配置问题一站式解决
查看>>
jfinal视频目录
查看>>
软件设计师考试历年试题汇总
查看>>
小div在大div中垂直居中,以及div在页面垂直居中
查看>>
有用的导航栏代码
查看>>
语法错误 : 缺少“;”(在“*”的前面) 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int...
查看>>
2015Web前端攻城之路
查看>>
推荐一个算法网站
查看>>
Python操作MySQL+Redis+MongoDB
查看>>
2017.6.30 Note replace innerHTML split() join()
查看>>
过滤关键词(中间有空格一样过滤)
查看>>
sql 当重复的数据有多条时,保留一条,删除其他重复
查看>>
RFC 4627 JSON
查看>>
Django入门与实践
查看>>
一些面试题(3)
查看>>
算法一枚
查看>>
Spin lock 与mutex 的区别--2011.01.06
查看>>
Java resources
查看>>