• 易买网之smartupload实现文件上传


    经过俩个星期的奋斗,易买网项目完工。在之前,实现图片的上传,走过许多弯路,原来是好多基础的知识忘记了,没把smartupload文件包添加组件jar包至WEB-INF/lib包中,在此特别重视,做下文件的上传。

    第一步:创建商品实体类:

    package entity;
    
    public class easybuy_productn {
        private int  ep_id ;//编号
        private String  ep_name  ;//名字
        private String  ep_description ;//描述
        private int  ep_price;//价格
        private int  ep_stock  ;//库存
        private int  epc_id ;//父类id
        private int  epc_child_id ;//二级id
        private String  ep_file_name  ;//文件名
        private int  tiaoma ;//条码号
        public int getEp_id() {
            return ep_id;
        }
        public void setEp_id(int epId) {
            ep_id = epId;
        }
        public String getEp_name() {
            return ep_name;
        }
        public void setEp_name(String epName) {
            ep_name = epName;
        }
        public String getEp_description() {
            return ep_description;
        }
        public void setEp_description(String epDescription) {
            ep_description = epDescription;
        }
        public int getEp_price() {
            return ep_price;
        }
        public void setEp_price(int epPrice) {
            ep_price = epPrice;
        }
        public int getEp_stock() {
            return ep_stock;
        }
        public void setEp_stock(int epStock) {
            ep_stock = epStock;
        }
        public int getEpc_id() {
            return epc_id;
        }
        public void setEpc_id(int epcId) {
            epc_id = epcId;
        }
        public int getEpc_child_id() {
            return epc_child_id;
        }
        public void setEpc_child_id(int epcChildId) {
            epc_child_id = epcChildId;
        }
        public String getEp_file_name() {
            return ep_file_name;
        }
        public void setEp_file_name(String epFileName) {
            ep_file_name = epFileName;
        }
        public int getTiaoma() {
            return tiaoma;
        }
        public void setTiaoma(int tiaoma) {
            this.tiaoma = tiaoma;
        }
    }

    第二步:编写sql:

    //添加商品
    public int Produt(String epName, String epDescription, int epPrice,
            int epStock, int epcId, String epFileName,String ep_name_tiaoma) {
        
        //创建数据库的链接
         con=this.getConnection();
    
        
        //创建int值确认是否插入成功
        int i=0;
        
        //创建sql语句
        String sql="insert into  easybuy_productn values(easybuy_productn_seq.nextval,?,?,?,?,?,'',?,?)";
        
        try {
            //写入sql
            st=con.prepareStatement(sql);
            st.setString(1, epName);
            st.setString(2, epDescription);
            st.setInt(3, epPrice);
            st.setInt(4, epStock);
            st.setInt(5, epcId);
            st.setString(6, epFileName);
            st.setString(7, ep_name_tiaoma);
            
            //开始执行sql
            i=st.executeUpdate();
            
            //开始判断
            if(i>0){
                i=1;
            }else{
                i=0;
            }
            //释放链接
            this.ShiFang(rs, st, con);
            
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        
        
        
        return i;
    }

    添加商品jsp页面

    <h2>添加商品</h2>
            <div class="manage">
                <form action="manage/MyJsp.jsp" method="post" enctype="multipart/form-data">
                    <table class="form">
                        <tr>
                            <td class="field">描述描述:</td>
                            <td><input type="text" class="text" name="productName" id="productscript" value="铁三角 Audio-Technica ATH-EQ300M-SV 银色 挂耳式耳机" /></td>
                        </tr>
                        
                        <tr>
                            <td class="field">所属分类:</td>
                            <td>
                            <select name="parentId">
                                 <c:forEach var="news" items="${requestScope.flist1}" >
                             <option value="1">${news.epc_name}</option>
                                  
                           <c:forEach var="ck" items="${flist}" >
                     <c:if test="${ck.epc_parent_id == news.epc_id}">
                                    <option value="3">${ck.epc_name}</option>
                                    </c:if>
        
                              </c:forEach>
                                    </c:forEach>
                                    
                                </select>
                            </td>
                        <tr>
                            <td class="field">头像:</td>
                            <td><input type="file" name="fileg" id="imgOne" onchange="preImg(this.id,'imgPre');"/></td>
                        </tr>
                        <tr>
                    <td>头像预览:</td>
                    <td><img id="imgPre" src="" style="150px;height:150px;display:block;"/></td>
                      </tr>
                        <tr>
                            <td class="field">商品价格:</td>
                            <td><input type="text" class="text tiny" name="productPrice" id="productPrice" /></td>
                        </tr>
                        <tr>
                            <td class="field">名称:</td>
                            <td><input type="text" class="text" name="productName2" id="productName" /></td>
                        </tr>
                        <tr>
                            <td class="field">库存:</td>
                            <td><input type="text" class="text tiny" name="productName3" id="producstock"/></td>
                        </tr>
                            <tr>
                            <td class="field">条号码:</td>
                            <td><input type="text" class="text tiny" name="productName4" id="producstock"/></td>
                        </tr>
                    
                        
                        <tr>
                            <td></td>
                            <td><label class="ui-blue"><input type="submit" name="submit" value="添加" /></label></td>
                        </tr>
                    </table>
                </form>

    处理页面:

    <%
    
    //----处理上传文件
    /*
        使用smartupload
            1、添加组件jar包至WEB-INF/lib包中
            2、设置form表单的提交类型为二进制类型
    */
    
    //创建smartupload组件
    SmartUpload su = new SmartUpload();
    
    //初始化组件上下文
    su.initialize(pageContext);
    
    //设置编码
    su.setCharset("utf-8");
    try{
    
        //上传文件
        su.upload();
    }catch(Exception e){
        %>
            <script type="text/javascript">
                alert("不允许上传:bat,exe,jsp,html,htm,java,class文件类型");
                location.href="index.jsp";
            </script>
        <%
    }
    
    //获取单个文件
    File file = su.getFiles().getFile(0);
    
    //设置上传服务器的位置
    String path2 = "upload\";
    
    //得到上传文件的名称
    String filename = file.getFileName();
    
    //上传文件的路径
    path2 = path2 + filename;
    
    //保存文件
    file.saveAs(path2,SmartUpload.SAVE_VIRTUAL);
    
    //获取图片显示路径
    String path3="upload\"+filename;
    
    //获取用户的名称
    String productName = su.getRequest().getParameter("productName");
    
    //获取用户的分类
    int parentId = Integer.parseInt(su.getRequest().getParameter("parentId"));
    
    //获取用户价格
    int productPrice=Integer.parseInt(su.getRequest().getParameter("productPrice"));
    
    //获取用户的品牌
    String productName2=su.getRequest().getParameter("productName2");
    
    //获取用户的库存
    int productPrice3=Integer.parseInt(su.getRequest().getParameter("productName3"));
    
    //获取用户的条码号
    String productPrice5=su.getRequest().getParameter("productName4");
    
    //实例化添加对象
    productnBiz product=new productnBizImpl();
    
    //调用查询方法
    int i=product.Produt(productName2,productName,productPrice,productPrice3,parentId,path3,productPrice5);
    
    //判断添加新闻是否成功
    if(i>0){
        
            out.print("<script>");
            out.print("alert('添加成功');");
            out.print("location.href='product.jsp';");
            out.print("</script>");
    
    }else{
        request.getRequestDispatcher("product-add.jsp").forward(request,response);
    }
    %>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>
     
        <title>My JSP 'Product_Add.jsp' starting page</title>
        
        <meta http-equiv="pragma" content="no-cache">
        <meta http-equiv="cache-control" content="no-cache">
        <meta http-equiv="expires" content="0">    
        <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
        <meta http-equiv="description" content="This is my page">
        <!--
        <link rel="stylesheet" type="text/css" href="styles.css">
        -->
    
      </head>
      
      <body>
        This is my JSP page. <br>
      </body>
    </html>
  • 相关阅读:
    select和epoll的区别
    Epoll导致的selector空轮询
    2.集合框架中的泛型有什么优点?
    java的语法基础(二)
    17-文本属性和字体属性
    15-浮动
    16-margin的用法
    14-块级元素和行内元素
    12-简单认识下margin
    day15 什么是递归/递归与回溯
  • 原文地址:https://www.cnblogs.com/wlx520/p/4579128.html
Copyright © 2020-2023  润新知