struts2 layui 文件上传_异步上传、保存路径、页面显示

一、数据库设计

a513e7fee8f3c51649f294f51bfb416c.png

二、Model实体类

public class banqi_attach    {        public int id { get; set; }        public string bqid { get; set; }        public string file_name { get; set; }        public string file_path { get; set; }        public int file_size { get; set; }        public DateTime create_time { get; set; }        public DateTime update_time { get; set; }    }

三、DAL数据访问层:注意涉及增加和根据id获取列表用于显示

 //增加数据        public int Add(Model.banqi_attach model)        {            StringBuilder strSql = new StringBuilder();            strSql.Append("insert into banqi_attach(");            strSql.Append("[bqid],[file_name] ,[file_path] ,[file_size],[create_time] )");            strSql.Append(" values (");            strSql.Append("@bqid,@file_name,@file_path,@file_size,@create_time)");            strSql.Append(";select @@IDENTITY");            SqlParameter[] parameters = {                                new SqlParameter("@bqid", SqlDbType.NVarChar,20),                                new SqlParameter("@file_name", SqlDbType.NVarChar,50),                                new SqlParameter("@file_path", SqlDbType.NVarChar,100),                                new SqlParameter("@file_size", SqlDbType.Int),                                new SqlParameter("@create_time", SqlDbType.DateTime)                                              };            parameters[0].Value = model.bqid;            parameters[1].Value = model.file_name;            parameters[2].Value = model.file_path;            parameters[3].Value = model.file_size;            parameters[4].Value = model.create_time;            //添加主表数据            object obj = new SqlHelper().ExecuteScalar(strSql.ToString(), parameters, CommandType.Text);            model.id = Convert.ToInt32(obj);            return model.id;        }       //根据bqid 显示附件列表        public DataTable GetList(string bqid)        {            StringBuilder strSql = new StringBuilder();            strSql.Append("select * from banqi_attach where bqid='"+bqid+"'");            return new SqlHelper().ExecuteQuery(strSql.ToString(), CommandType.Text);        }

四、前台页面:包含一些对上传文件基本属性的验证,如类型、大小等

@ Page Language="C#" AutoEventWireup="true" CodeBehind="banqi_attach.aspx.cs" Inherits="Peixun.Web.banqi_attach" %><html xmlns="http://www.w3.org/1999/xhtml"><head runat="server">    <title>班期附件title>   <style type="text/css">       *{margin:0;padding:0;}a{text-decoration:none;}ul.imglist{ margin:0 auto; overflow:hidden;}ul.imglist li{list-style:none; float:left; padding:14px 8px; width:280px; margin-bottom:20px; }ul.imglist li img{ display:block; width:280px; height:200px}ul.imglist li span{ display:block;width:100%; height:30px; line-height:30px; background:#F6F6F6;text-align:center;text-decoration: none;}.part{ margin:0 auto; width:1200px;}style> <link rel="stylesheet" href="./css/xadmin.css">    <script src="https://libs.baidu.com/jquery/1.3.2/jquery.min.js" type="text/javascript"> script>    <script src="js/ajaxfileupload.js" type="text/javascript">script>head><body><div class="part">    <form id="form1" runat="server">   附件名称:<asp:TextBox ID="TextBox1" runat="server">asp:TextBox><br />         <div class="layui-upload">           <asp:FileUpload ID="FileUpload" runat="server" />             <input type="button" value="上传图片 " class="layui-btn layui-btn-danger" onclick="ajaxFileUpload()"/>            <br /><br />            <div  style="border: 1px solid blue;">                <img alt="" class="layui-upload-img" id="demo1" style=" width:300px; height:200px;">                <asp:Label ID="demoText" runat="server">asp:Label>               <asp:HiddenField ID="HiddenField1" runat="server" />               <asp:HiddenField ID="HiddenField2" runat="server" />            div>        div>    <asp:Button ID="btnSubmit" runat="server" Text="确定上传" CssClass="layui-btn"  onclick="btnSubmit_Click" />div>   <asp:Repeater ID="rptList2" runat="server">  <HeaderTemplate> <div class="part">  <h3>附件列表h3><ul class="imglist">   HeaderTemplate>    <ItemTemplate>     <li>        <a href="#Eval("file_path")%>" target="_blank">           <img src=#Eval("file_path")%> />           <span>#Eval("file_name")%><br />#Eval("create_time")%>span>        a>    li>    ItemTemplate>  <FooterTemplate>      #rptList2.Items.Count == 0 ? "
暂无记录
" : ""%>    ul>  div>  FooterTemplate>  asp:Repeater>  div>    form><script type="text/javascript">    function ajaxFileUpload() {        var filePath = $("#FileUpload").val();        if (filePath == "") {            alert("请选择文件");       }        var size = $("#FileUpload")[0].files[0].size; //获取文件大小,单位字节B        alert(size);        var type = filePath.substr(filePath.indexOf("."));   //获取扩展名,格式如.jpg        if (type == ".jpg" || type == ".gif" || type == ".JPG" || type == ".GIF") {            alert("符合要求格式");       }        else {            alert("格式错误");       }                $.ajaxFileUpload(                   {                       url: 'ajaxupload.ashx',            //需要链接到服务器地址                       secureuri: false,                       fileElementId: 'FileUpload',          //文件选择框的id属性                       dataType: 'json',                                     //服务器返回的格式,可以是json                       success: function (data, status)            //相当于java中try语句块的用法                       {                           $("#demo1").attr("src", "../upload/" + data.savefilename + "");                           $("#demoText").html(data.msg);                           $("#HiddenField1").val("/upload/" + data.savefilename);                           $("#HiddenField2").val(data.filesize);                       },                       error: function (data, status, e)            //相当于java中catch语句块的用法                       {                           alert(data.error);                       }                   }               );   }script>body>html>

五、异步处理ashx文件

using System;using System.Collections.Generic;using System.Linq;using System.Web;namespace Peixun.Web{    ///     /// ajaxupload 的摘要说明    ///     public class ajaxupload : IHttpHandler    {        public void ProcessRequest(HttpContext context)        {            string msg = string.Empty;            string error = string.Empty;            string result = string.Empty;            HttpPostedFile _upfile = context.Request.Files["FileUpload"];            string savepath = HttpContext.Current.Server.MapPath("~") + "\\upload\\";            int file_size = _upfile.ContentLength;  //获取上传文件大小            //判断上传文件夹是否存在,若不存在,则创建            if (!System.IO.Directory.Exists(savepath))            {                System.IO.Directory.CreateDirectory(savepath); //创建文件夹            }            if (_upfile.FileName != "")            {                //string savefilename = System.DateTime.Now.ToString("yyyyMMddHHmmssffff") + "_" + _upfile.FileName;//声称文件名,以时间命名防止重复                string savefilename = System.DateTime.Now.ToString("yyyyMMddHHmmssffff") + _upfile.FileName.Substring(_upfile.FileName.IndexOf(".")).ToLower(); //注意Substring和IndexOf的写法中的大小写,获取扩展名并小写。                _upfile.SaveAs(savepath + savefilename);                msg = "文件上传成功!";                result = "{msg:'" + msg + "',savefilename:'" + savefilename + "',filesize:'"+file_size.ToString()+"'}";            }            else            {                error = "文件上传失败!";                result = "{ error:'" + error + "'}";            }            context.Response.Write(result);            context.Response.End();        }        public bool IsReusable        {            get            {                return false;            }        }    }}

六、页面后台代码

using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.UI;using System.Web.UI.WebControls;using System.Data;using System.Data.SqlClient;namespace Peixun.Web{    public partial class banqi_attach : System.Web.UI.Page    {        protected void Page_Load(object sender, EventArgs e)        {            DataTable dt = new DAL.banqi_attach().GetList( Request.QueryString["bqid"]);            rptList2.DataSource = dt;            rptList2.DataBind();        }        #region 增加操作=================================        private bool DoAdd()        {            bool result = false;            Model.banqi_attach model = new Model.banqi_attach();            model.file_name = TextBox1.Text.Trim();            model.file_path = HiddenField1.Value;            model.create_time = DateTime.Now;            model.bqid = Request.QueryString["bqid"];            model.file_size =Convert.ToInt32(HiddenField2.Value);           if (new DAL.banqi_attach().Add(model) > 0)            {                result = true;            }            return result;        }        #endregion        //保存        protected void btnSubmit_Click(object sender, EventArgs e)        {            if (!DoAdd())            {                Response.Write(");                return;            }            else            {                Response.Write(");            }        }    }}

七、效果图

292eb4bc00301dff3af77da701581056.png

3ce15c71e5b9cc572a01e5256f35c34f.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值