tomcat服务器的文件上传功能实现

目录

一、场景:展示向服务器添加商品,商品信息包括图片,以及其他信息

1,获取数据

2.添加数据

3.传回数据到前台

二、附:配置CATALINA_HOME

三、效果展示


一、场景:展示向服务器添加商品,商品信息包括图片,以及其他信息

    //添加商品
    protected void addProduct(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        JsonModel jm=new JsonModel();//传回前台的数据放在这个类 data,code,msg
        DbHelper db=new DbHelper();//封装的一些数据库操作

            //1、获取数据
            
            //2、添加数据至数据库,文件保存在upload,数据库存文件路径

            //3、传回信息到前台
           
    }

1,获取数据

 //首先拿到流信息  它返回的是一个part对象,这是前端过来的文件
            Part uploadFile = request.getPart("uploadFile");//图片data,包括文件名,数据等等

            //取前端过来的商品信息,一些商品信息
            product newProduct=super.parseRequestToT(request,product.class);
            double v = db.Selectaggreation("select max(pid)+1 from product"); //获取新pid编号
            newProduct.setPid((int) v);
            List<Map<String, Object>> list = db.Select("select csid from categorysecond where csname=?", newProduct.getCsname());
            newProduct.setCsid( (Integer) list.get(0).get("csid") );  //获取csid编号


            //tomcate路径,这需要你先配置CATALINA_HOME这个变量,方法在文章末尾,以及建一个文件保存的文件夹upload
            String CATALINA_HOME =System.getenv("CATALINA_HOME")+File.separator+"webapps"+File.separator;
            //图片保存目录  tomcat下的 webapps/upload/
            String filePath =  CATALINA_HOME+"upload"+File.separator;


            //生成新的文件名     pid.xxx文件
            String fileName = uploadFile.getSubmittedFileName();
            fileName=newProduct.getPid()+fileName.substring(fileName.lastIndexOf("."));
            System.out.println(fileName);


            //设置新商品图片url
            String urlPath = "../upload" + File.separator+ fileName;
            urlPath = urlPath.replaceAll("\\\\", "/");
            System.out.println(urlPath);
            newProduct.setImage(urlPath);

2.添加数据

 int result = db.daUpdate("insert into product values(?,?,?,?,?,?,?,?,?)"
                    , newProduct.getPid(), newProduct.getPname(), newProduct.getMarket_price()
                    , newProduct.getShop_price(), newProduct.getImage(), newProduct.getPdesc()
                    , newProduct.getIs_hot(), new Timestamp(System.currentTimeMillis()), newProduct.getCsid());
            if(result==1){
                File saveDirFile = new File(filePath);
                if (!saveDirFile.exists()) {
                    saveDirFile.mkdirs();
                }
                //保存图片至 filePath下
                uploadFile.write(filePath + fileName);
                jm.setCode(1);
                jm.setData("添加商品成功!");

3.传回数据到前台

扫描二维码关注公众号,回复: 15481984 查看本文章

二、附:配置CATALINA_HOME

vi /etc/profile

按‘i’进入insert模式,在最后加入

export CATALINA_HOME=你的tomcat路径

如:/usr/local/tomcat/apache-tomcat-9.0.68

按ESC退出insert模式,按‘:wq’,保存退出

使配置生效

source /etc/profile

新建一个在webapps下新建upload文件夹

三、效果展示

可以看到:pid为3的这条数据图片为我本地的图片

猜你喜欢

转载自blog.csdn.net/qq_59384418/article/details/128161652