javaweb使用Tomcat 保存文件并且 存数据库

使用Tomcat添加一个文件  带日期时间  添加完成之后插入到数据库的代码!:

介绍部分

 

 

 

 

代码部分

HTML代码(图片可自己选择)

<html lang="zh"  xmlns:th="http://www.thymeleaf.org">
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>register</title>
</head>

<!-- 页面的样式文件 -->
<style type="text/css">
    body{
        background-color : #eee;
    }
    #first{
        width:500px;
        margin:30px auto;
    }

    #c1{
        color:red;
        font-size: 20px;
    }
    #c3{
        font-size: 10px;
    }
    #c4but{
        width: 100px;
        height: 30px;
    }



</style>

<body>
<meta name="viewport" content="width=device-width" initial-scale="1"/>
<div id="first">
    <body background="img/banner1.png" onload="fun()">

    <p id="c1">只允许上传与战队相关的图片上传其他文件直接封IP</p>
    <div style="width:500px;margin:0 auto;">
      <p id="c2" style ="color:red">(需解除联系群主)</p>
    <h1 style ="color:red"></h1>
    <form action="register.do"  enctype="multipart/form-data"  method="post">
        <table align="center" cellpadding="5" cellspacing="5" border="1">

        <span style="background-color: rgb(255, 0, 0);">
              <tr>
        <td>
            <p style="text-align:center">个人收款码(微信):</p>
             <tr>
                <td>
            <input type="file" name="filename" size="30" value="123"><br>
                </td>
            </tr>
        </span>
        </td>
    </tr>


            <!-- 上传多个文件的代码 -->
<!--            <p>本周战队赛/内战截图(打开文件的时候可以长按里面的图片进行多选):</p>-->
            <tr>
                <td style="text-align:center">

                    <p>本周战队赛截图:</p>
                    <p>(通过王者营地等截图提交 一张图片包括打的所有战队赛次数)</p>
            <tr>
                <td>
            <input type="file" multiple name="filename1" size="30"><br>
              </td>
        </tr>
            <br><br>
              </td>
          </tr>




            <tr>
                <td>
                    联系qq:&nbsp&nbsp&nbsp<input type="text" name="qq"> <br>
                    游戏名称::<input type="text" name="name"> <br><br>
                    &nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp<input type="submit" value="确认" id="c4but">

                </td>
            </tr>

            <tr>
                <td>
        <p id="c3" style ="color:red" th:text="${session.show2}">!提交失败!请注意看收款码与战队赛截图是否填写!</p>
                </td>
            </tr>

        </table>
    </form>
</div>
    </body>
</div>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<meta name="viewport" content="width=device-width" initial-scale="1"/>
<form  method="post"   action="scwj.html"    >
<h4 style ="color:red"> !提交失败!请注意看收款码与战队赛截图是否提交!</h4>
<input type="submit" value="返回" >
</form>
</body>
</html>

java代码

package Spring.team;

import Spring.ViewBaseServlet;
import Spring.website.login;
import qqzone.Dao.TeamDAo;
import qqzone.Iservlce.ITeamDao;
import qqzone.Modio.QQPath;
import qqzone.Modio.QQname;

import java.io.File;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.SQLException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.concurrent.Callable;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;

import javax.servlet.ServletException;
import javax.servlet.annotation.MultipartConfig;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.Part;

/**
 * Servlet implementation class Register
 */
@WebServlet(name="Register",urlPatterns={"/register.do"})
//设置文件存储的路径
@MultipartConfig(location="D:\\",fileSizeThreshold=1024)   //到时上传到服务器要改路径
public class Register extends ViewBaseServlet {
    private static final long serialVersionUID = 1L;
    private static final Object[] OK = null;

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        super.processTemplate("Register",req,resp);
    }



    ExecutorService es= Executors.newFixedThreadPool(10);
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        System.out.println("\n\n------------------doPost(wjsc)-----------------------------");
        ITeamDao dao=new TeamDAo();
        QQname name=new QQname();

        List<String> img = new ArrayList<>(); //服务器的
        List<QQPath> path1 = name.getPath(); //数据库的
        //获取时间
        SimpleDateFormat formatter = new SimpleDateFormat("'Data-'yyyy-MM-dd");
        Date date = new Date(System.currentTimeMillis());
        //设置编码
        request.setCharacterEncoding("utf-8");
        try {
            //目录设置
            String nameQQ = request.getParameter("name") + "+" + request.getParameter("qq");
            String path_hou = formatter.format(date) + "\\" + nameQQ + "\\";//存放图片的路径 带上上传时间
            String path = this.getServletContext().getRealPath("/");//获得根目录
            path = path + "image\\" + path_hou;


            //文件保存、路径设置
            for (Part part : request.getParts()) {
                if (part.getSize() > 1024 * 10240) { //大型文件判断
                    part.delete();
                }

                //只处理上传文件区段
                if (part.getName().startsWith("file")) {
                    String header = part.getHeader("Content-Disposition");
                    String fileName = header.substring(header.indexOf("filename=\"") + 10, header.lastIndexOf("\""));
                    header.lastIndexOf("\"");

                //文件保存
                    File f = new File(path);
                    if (!f.exists()) {
                        f.mkdirs();
                    }

                    System.out.println(path + fileName);
                    part.write(path + fileName); //保存文件

                    String pathSelect="image\\" + path_hou + fileName; //需要保存的路径
                    img.add(pathSelect); //用于后期查找
                    path1.add(new QQPath(name.getName(),pathSelect)); //后期保存数据库的
                }
            }

            name.setQq(request.getParameter("qq"));
            name.setName(request.getParameter("name"));
            name.setIp(login.userIP(request));//获取ip地址
            name.setTimeData(formatter.format(date));


            es.submit(new Test(dao,name));
//            new Thread(() -> {  //对于数据进行保存到数据库
//                try {
//
//                    System.out.println("  游戏名称:"+name.getName()+"  联系QQ:"+name.getQq());
//                    dao.addingClanData(name); //添加保存到数据库
//                } catch (SQLException e) {
//                    System.out.println("cuoww");
//                }
//            });

            request.getSession().setAttribute("img", img); //存储数据
            response.sendRedirect("scwj_imgshow");//刷新


        }catch (Exception e){
            e.printStackTrace();
            response.sendRedirect("scwj_no_scwj.html");

        }


    }
}
class Test  implements Callable {
   private ITeamDao dao;
   private QQname name;
    public Test(ITeamDao dao,QQname name) {
        this.dao=dao;
        this.name=name;

    }

    @Override
    public Object call() throws Exception {
        System.out.println("  游戏名称:"+name.getName()+"  联系QQ:"+name.getQq());
       dao.addingClanData(name); //添加保存到数据库

        return null;
    }
}

 数据库层的代码:

package qqzone.Dao;

import qqzone.Iservlce.ITeamDao;
import qqzone.Modio.QQPath;
import qqzone.Modio.QQname;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

public class TeamDAo implements ITeamDao {
    @Override
    public void addingClanData(QQname qqname) throws SQLException {
        Statement sm = DaoConnect.daoConnection();  //用来数据的操作
        ResultSet set = DaoConnect.selectDB("SELECT name FROM s_qqname  where name=\"" + qqname.getName() + "\" and timedata=\""+qqname.getTimeData()+"\";");
        if(!set.next()){ //添加处理条(如果没有当前日期当前年份)
            sm.addBatch("INSERT INTO `qqzhondb`.`s_qqname`( `name`, `qq`, `ensure`, `ip`, `timedata` ) VALUES ( '"+qqname.getName()+"', '"+qqname.getQq()+"', 'NO', '"+qqname.getIp()+"', '"+qqname.getTimeData()+"');");
        }

        for (QQPath path : qqname.getPath()) { //队数据进行插入
         String  sql="insert into s_qqpath(name,path) values(\""+qqname.getName()+"\",\""+path.getPath()+"\");";
            sm.addBatch(sql.replace("\\","\\\\"));

        }
         sm.executeBatch(); //数据批量插入
    }

    @Override
    public List<QQname> selectTeam() {
        List<QQname> listName=new ArrayList<>();
        try {
         QQname name=null;
        String sql="select id,name,qq,ip,time,price from s_qqname;";

        ResultSet set = DaoConnect.selectDB(sql);
          while (set.next()){

              ResultSet set2 = DaoConnect.selectDB("select * from s_qqpath where name=\""+set.getString("name")+"\";");
              List<QQPath> listPath=new ArrayList<>();
              while (set2.next()){
                  listPath.add(new QQPath(set2.getString("path"))); //只需要路径
              }
              name=new QQname(set.getInt("id"),set.getString("name"),set.getString("qq"),set.getString("ip"), set.getString("time"),set.getInt("price"));
              name.setPath(listPath); //保存路径集合
              listName.add(name); //保存集合
          }

        } catch (SQLException e) {
            e.printStackTrace();
        }
        return listName;
    }


}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

游迹AI

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值