zoukankan      html  css  js  c++  java
  • 团队开发day03

    在商品信息提交的时候需要提交商品的图片,这一部门是之前没有接触过的,所以从网上学习各种相关资源。

    但是找了很久,都没有找到相关的,直到找到如下的代码,如下代码是从前端传过来图片后,servlet进行的一系列操作

    进行了很久的研究,终于看懂的差不多了。接下来就是实践图片存入数据库了。

    public class Inertm extends HttpServlet {
        
        protected void doPost(HttpServletRequest req, HttpServletResponse resp)
                throws ServletException, IOException {
            System.out.println("方法开始执行");
            resp.setContentType("application/json;charset=utf-8");
            req.setCharacterEncoding("utf-8");
            resp.setCharacterEncoding("utf-8");
            String name=req.getParameter("user");
            // 验证请求是否满足要求(post 请求 / enctype 是否以multipart打头
                    boolean isMultipart = ServletFileUpload.isMultipartContent(req);
                    // 如果不满足要求就立即结束对该请求的处理
                    if (!isMultipart) {
                        return;
                    }
                    try {
                        // FileItem 是表单中的每一个元素的封装
                        // 创建一个 FileItem 的工厂类
                        FileItemFactory factory = new DiskFileItemFactory();
                        // 创建一个文件上传处理器(装饰设计模式)
                        ServletFileUpload upload = new ServletFileUpload(factory);
                        // 解析请求
                        List<FileItem> items = upload.parseRequest(req);
                        System.out.println(items);
    
                        for (FileItem item : items) {
                            // 判断文件类型
                            if (item.isFormField()) {
                                // 文本类型
                                String filename = item.getFieldName();
                                if (filename.equals("user")) {
                                    name = item.getString("UTF-8");
                                    System.out.println(name);
                                }
                            } else {
                                // 文件类型    
                                // 获取文件后缀名
                                String imgtype = item.getName().substring(item.getName().lastIndexOf("."));
                                // 给文件重新命名防止重复
                                String imgName = UUID.randomUUID() + imgtype;
                                System.out.println();
                                String path="D:\JAVA\img";
                                // 将上传的文件保存到服务器
                                item.write(new File(path, imgName));
    
                                // 把服务器中的路径添加到数据库中
                                String sqlPath=null;
                                sqlPath = "upload/" + imgName;
                                System.out.println("访问路径:" + sqlPath);
                                // 将路径保存到数据库
                                User u=new User();
                                u.setName(name);
                                u.setImgurl(sqlPath);
                                Userdao dao=new Userdao();
                                boolean flag=dao.addUser(u);
                                if(flag){
                                    resp.getWriter().write("ok");;
                                }else{
                                    resp.getWriter().write("on");;
    
                                }
                            }
                        }
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
    
        }
    }
  • 相关阅读:
    Thrift安装编译指南
    Linux磁盘与文件系统管理
    你懂得C,所以C++也不在话下
    加速NFV(网络功能虚拟化)数据面:SR-IOV和DPDK[原文意译]
    十张图看懂SDN与NFV的区别与联系?
    Lambda表达式用法
    论文写作+gnuplot制图
    私钥、公钥、数字签名和数字证书
    synchronized和Lock的异同
    介绍HTTP协议的传输过程
  • 原文地址:https://www.cnblogs.com/cdl-sunshine/p/14904785.html
Copyright © 2011-2022 走看看