• ASP.NET MVC 实现页落网资源分享网站+充值管理+后台管理(10)之素材管理


    源码下载地址:http://www.yealuo.com/Sccnn/Detail?KeyValue=c891ffae-7441-4afb-9a75-c5fe000e3d1c 

    素材管理模块也是我们这个项目的核心模块,里面的增删查改都跟文章管理模块相同或者相似,唯一不同点可能是对附件的上传处理,但没有涉及到复杂的文件上传,所以我们采用了原生的文件流的形式上传,同时在做了文件在编辑的时候,如果重新上传文件,我们将旧文件删除,这样可以释放更多的服务器空间,以免造成大量垃圾文件堆积。

    在创建之前,我们需要在表现层的SystemExtension下创建一个公共类BaseCommon.cs:

    using System;
    using System.Collections;
    using System.Collections.Generic;
    using System.Drawing;
    using System.IO;
    using System.Linq;
    using System.Text.RegularExpressions;
    using System.Web;
    
    namespace IA.WebApp.SystemExtension
    {
        /// <summary>
        /// 通用方法
        /// </summary>
        public class BaseCommon
        {
          
    
            #region 解压ZIP文件
    
            /// <summary>   
            /// 解压功能(解压压缩文件到指定目录)   
            /// </summary>   
            /// <param name="fileToUnZip">待解压的文件</param>   
            /// <param name="zipedFolder">指定解压目标目录</param>   
            /// <param name="password">密码</param>   
            /// <returns>解压结果</returns>   
            public static bool UnZip(string fileToUnZip, string zipedFolder, string password)
            {
                bool result = true;
                FileStream fs = null;
                ICSharpCode.SharpZipLib.Zip.ZipInputStream zipStream = null;
                ICSharpCode.SharpZipLib.Zip.ZipEntry ent = null;
                string fileName;
    
                if (!File.Exists(fileToUnZip))
                    return false;
    
                if (!Directory.Exists(zipedFolder))
                    Directory.CreateDirectory(zipedFolder);
    
                try
                {
                    zipStream = new ICSharpCode.SharpZipLib.Zip.ZipInputStream(File.OpenRead(fileToUnZip));
                    if (!string.IsNullOrEmpty(password)) zipStream.Password = password;
                    while ((ent = zipStream.GetNextEntry()) != null)
                    {
                        if (!string.IsNullOrEmpty(ent.Name))
                        {
                            fileName = Path.Combine(zipedFolder, ent.Name);
                            fileName = fileName.Replace('/', '\');//change by Mr.HopeGi   
    
                            if (fileName.EndsWith("\"))
                            {
                                Directory.CreateDirectory(fileName);
                                continue;
                            }
    
                            fs = File.Create(fileName);
                            int size = 2048;
                            byte[] data = new byte[size];
                            while (true)
                            {
                                size = zipStream.Read(data, 0, data.Length);
                                if (size > 0)
                                    fs.Write(data, 0, size);
                                else
                                    break;
                            }
                        }
                    }
                }
                catch
                {
                    result = false;
                }
                finally
                {
                    if (fs != null)
                    {
                        fs.Close();
                        fs.Dispose();
                    }
                    if (zipStream != null)
                    {
                        zipStream.Close();
                        zipStream.Dispose();
                    }
                    if (ent != null)
                    {
                        ent = null;
                    }
                    GC.Collect();
                    GC.Collect(1);
                }
                return result;
            }
            #endregion
    
    
    
            #region 搜索引擎自动推送
            /// <summary>
            /// 搜索引擎链接推送
            /// </summary>
            /// <param name="urls"></param>
            /// <returns></returns>
            public static string PostUrl(string[] urls)
            {
                try
                {
                    string formUrl = "http://data.zz.baidu.com/urls?site=www.yealuo.com&token=nvLhHxq4HKwgKoCQ";
    
                    string formData = "";
    
                    foreach (string url in urls)
                    {
                        formData += url + "
    ";
                    }
    
                    byte[] postData = System.Text.Encoding.UTF8.GetBytes(formData);
    
                    // 设置提交的相关参数 
                    System.Net.HttpWebRequest request = System.Net.WebRequest.Create(formUrl) as System.Net.HttpWebRequest;
                    System.Text.Encoding myEncoding = System.Text.Encoding.UTF8;
                    request.Method = "POST";
                    request.KeepAlive = false;
                    request.AllowAutoRedirect = true;
                    request.ContentType = "text/plain";
                    request.UserAgent = "curl/7.12.1";
                    request.ContentLength = postData.Length;
    
                    // 提交请求数据 
                    System.IO.Stream outputStream = request.GetRequestStream();
                    outputStream.Write(postData, 0, postData.Length);
                    outputStream.Close();
    
                    System.Net.HttpWebResponse response;
                    System.IO.Stream responseStream;
                    System.IO.StreamReader reader;
                    string srcString;
                    response = request.GetResponse() as System.Net.HttpWebResponse;
                    responseStream = response.GetResponseStream();
                    reader = new System.IO.StreamReader(responseStream, System.Text.Encoding.GetEncoding("UTF-8"));
                    srcString = reader.ReadToEnd();
                    string result = srcString;   //返回值赋值
                    reader.Close();
    
                    return result;
                }
                catch (Exception ex)
                {
                    return ex.Message;
                }
            }
            #endregion
        }
    }

    同样的步骤,首先我们创建一个名为AttachmentMangeController的控制器、Index.cshtml视图,以及业务类Com_AttachmentBll.cs

    (1)AttachmentMangeController.cs

    using Bobo.Utilities;
    using IA.Business;
    using IA.Business.SystemBusiness;
    using IA.Entity;
    using IA.WebApp.SystemExtension;
    using System;
    using System.Collections.Generic;
    using System.Data;
    using System.Drawing;
    using System.IO;
    using System.Linq;
    using System.Web;
    using System.Web.Mvc;
    using System.Xml;
    
    namespace IA.WebApp.Areas.BackstageModule.Controllers
    {
        /// <summary>
        /// 素材管理控制器
        /// </summary>
        [LoginAuthorize("~/BackstageModule/Login/Index")]
        public class AttachmentMangeController : PublicController<Com_Attachment>
        {
            //
            // GET: /BackstageModule/AttachmentMange/
            /// <summary>
            /// 获取分页数据
            /// </summary>
            /// <param name="ArticleTitle"></param>
            /// <param name="jgp"></param>
            /// <returns></returns>
            public ActionResult GetTable(string FileTitle, JqGridParam jgp)
            {
                FileTitle = FileTitle.Replace("&nbsp;", "");
                Com_AttachmentBll bll = new Com_AttachmentBll();
                DataTable model = bll.GetTablePage(FileTitle, ref jgp);
                //构建分页数据
                var JsonData = new
                {
                    success = true,
                    pageData = jgp,
                    message = "",
                    data = model
                };
                return Content(JsonData.ToJson());
            }
    
    
         
            /// <summary>
            /// 添加编辑 
            /// </summary>
            /// <param name="entity"></param>
            /// <param name="KeyValue"></param>
            /// <returns></returns>
            public ActionResult SubmitFormData(Com_Attachment entity, string KeyValue)
            {
                HttpPostedFileBase FileCover = Request.Files["FileCover"];
                HttpPostedFileBase FileUrl = Request.Files["FileUrl"];
    
                Com_AttachmentBll bll = new Com_AttachmentBll();
                try
                {
                    int IsOk = 0;
                    string Message = KeyValue == "" ? "新增成功。" : "编辑成功。";
                    #region 附件处理
                    bool FileHasCover = FileCover != null && FileCover.ContentLength > 0;
                    bool FileHasUrl = FileUrl != null && FileUrl.ContentLength > 0;
                    List<string> fileType = ConfigHelper.GetSystemConfig("SystemConfig", "fileUploadPath", "ImageType").ToLower().Split('|').ToList();
                    string PicName = "";
                    string FileUrName = "";
                    if (FileHasCover)
                    {
                        PicName = Path.GetFileName(FileCover.FileName);
                    }
                    if (FileHasUrl)
                    {
                        FileUrName = Path.GetFileName(FileUrl.FileName);
                    }
    
                    if ((FileHasCover && !fileType.Contains(Path.GetExtension(PicName).ToLower())))
                    {
                        return Content(new JsonMessage { Code = "-1", Success = false, Message = "封面只能上传" + ConfigHelper.GetSystemConfig("SystemConfig", "fileUploadPath", "ImageType").ToLower() + "类型的文件!" }.ToString());
                    }
                    var ssssl = FileCover.ContentLength;
                    var ssss = CommonHelper.GetInt(SizeHelper.CountSizeNum(FileCover.ContentLength));
                    if (FileHasCover && CommonHelper.GetInt(SizeHelper.CountSizeNum(FileCover.ContentLength)) > CommonHelper.GetInt(ConfigHelper.GetSystemConfig("SystemConfig", "fileUploadPath", "ImageSize")))
                    {
                        return Content(new JsonMessage { Code = "-1", Success = false, Message = "文件大小不能超过" + ConfigHelper.GetSystemConfig("SystemConfig", "fileUploadPath", "ImageSize") + "M!" }.ToString());
                    }
                    string strLower = Path.GetExtension(FileUrName).ToLower();
                    if (FileHasUrl && (strLower != ".zip" && strLower != ".ZIP"))
                    {
                        return Content(new JsonMessage { Code = "-1", Success = false, Message = "附件只能上传ZIP类型的文件!" }.ToString());
                    }
                    if (FileHasUrl && CommonHelper.GetInt(SizeHelper.CountSizeNum(FileUrl.ContentLength)) > CommonHelper.GetInt(ConfigHelper.GetSystemConfig("SystemConfig", "fileUploadPath", "BigSize")))
                    {
                        return Content(new JsonMessage { Code = "-1", Success = false, Message = "文件大小不能超过" + ConfigHelper.GetSystemConfig("SystemConfig", "fileUploadPath", "BigSize") + "M!" }.ToString());
                    }
                    string AllPath = "";//ConfigHelper.GetSystemConfig("SystemConfig", "fileUploadPath", "AllFilePath");
    
                    string PicPath = "/Resource/Journal/FileCover/";
                    string PicMinPath = "/Resource/Journal/FileMinCover/";
                    DirFileHelper.CreateDirectory(Server.MapPath(AllPath + PicPath));
                    DirFileHelper.CreateDirectory(Server.MapPath(AllPath + PicMinPath));
                    //上传FileCover
                    if (FileHasCover)
                    {
                        string fileName = CommonHelper.GetGuidNotLine() + Path.GetExtension(PicName).ToLower();
                        FileCover.SaveAs(Server.MapPath(AllPath + PicPath + fileName));
                        entity.FileCover = PicPath + fileName;
                        Image titleImg = Image.FromStream(FileCover.InputStream);
                        PictureHelp.MakeThumbnail(titleImg,Server.MapPath(AllPath + PicMinPath) + fileName, 260, 0, "W");
                        entity.FileMinCover = PicMinPath + fileName;
                    }
                    //上传FileUrl
                    string FileUrlPath = "/Resource/Journal/FileUrl/";
                    string guid = CommonHelper.GetGuid();
                    DirFileHelper.CreateDirectory(Server.MapPath(AllPath + FileUrlPath + guid));
                    if (FileHasUrl)
                    {
                        string fileName = CommonHelper.GetGuidNotLine() + Path.GetFileName(FileUrl.FileName);
                        FileUrl.SaveAs(Server.MapPath(AllPath + FileUrlPath + fileName));
                        entity.FileUrl = FileUrlPath + fileName;
                        if (entity.FileType == "FLASH" || entity.FileType == "PIC" || entity.FileType == "SYS")
                        {
                            entity.FileIndexUrl = "";
                        }
                        else
                        {
                            entity.FileIndexUrl = AllPath + FileUrlPath + guid + "/Index.html";
                            BaseCommon.UnZip(Server.MapPath(AllPath + FileUrlPath + fileName), Server.MapPath(AllPath + FileUrlPath + guid), null);//压缩包解压
                        }
                    }
                    #endregion
                    if (!string.IsNullOrEmpty(KeyValue))
                    {
                        Com_Attachment Oldentity = bll.Factory.FindEntity(KeyValue);//获取没更新之前实体对象
                        if (FileHasCover)
                        { //修改的时候判断是否有新上传图,有就删除原图片
                            if (!StringHelper.IsNullOrEmpty(Oldentity.FileCover))
                            {
                                string path = Server.MapPath(Oldentity.FileCover);
                                string path1 = Server.MapPath(Oldentity.FileMinCover);
                                if (System.IO.File.Exists(path))
                                {
                                    System.IO.File.Delete(path);
                                }
                                if (System.IO.File.Exists(path1))
                                {
                                    System.IO.File.Delete(path1);
                                }
    
                            }
                        }
                        if (FileHasUrl)
                        { //修改的时候判断是否有新上文件,有就删除原文件
                            if (!StringHelper.IsNullOrEmpty(Oldentity.FileUrl))
                            {
                                string path = Server.MapPath(Oldentity.FileUrl);
                                if (System.IO.File.Exists(path))
                                {
                                    System.IO.File.Delete(path);
                                }
    
                            }
    
                            if (!StringHelper.IsNullOrEmpty(Oldentity.FileIndexUrl))
                            {
                                string path = Path.GetDirectoryName(Server.MapPath(Oldentity.FileIndexUrl));
                                if (Directory.Exists(path))
                                {
                                    Directory.Delete(path, true);//删除文件夹及子文件
                                }
    
                            }
                        }
    
                        entity.Modify(KeyValue);
                        IsOk = bll.Factory.Update(entity);
                        this.WriteLog(IsOk, entity, Oldentity, KeyValue, Message);
                    }
                    else
                    {
                        entity.Create();
                        IsOk = bll.Factory.Insert(entity);
                        if (IsOk > 0)
                        {
                            KeyValue = entity.FileID;
                            SetWebMapFile();
                            BaseCommon.PostUrl(new string[] { KeyValue });
                        }
                        this.WriteLog(IsOk, entity, null, KeyValue, Message);
                    }
                    if (IsOk < 1)
                    {
                        Message = "操作失败";
                    }
                    new Base_DataDictionaryDetailBll().SubContentKey(entity.ContentKey);
    
                    return Content(new JsonMessage { Success = true, Code = IsOk.ToString(), Message = Message }.ToString());
                }
                catch (Exception ex)
                {
                    this.WriteLog(-1, entity, null, KeyValue, "操作失败:" + ex.Message);
                    return Content(new JsonMessage { Success = false, Code = "-1", Message = "操作失败:" + ex.Message }.ToString());
                }
            }
    
    
            /// <summary>
            /// 制造站长地图文档
            /// </summary>
    
            /// <returns></returns>
            public int SetWebMapFile()
            {
                try
                {
                    //创建XmlDocument对象
                    XmlDocument xmlDoc = new XmlDocument();
                    //XML的声明<?xml version="1.0" encoding="gb2312"?> 
                    XmlDeclaration xmlSM = xmlDoc.CreateXmlDeclaration("1.0", "UTF-8", null);
                    //追加xmldecl位置
                    xmlDoc.AppendChild(xmlSM);
                    //添加一个名为Gen的根节点
                    XmlElement xml = xmlDoc.CreateElement("", "urlset", "");
                    //追加Gen的根节点位置 
                    xmlDoc.AppendChild(xml);
                    //添加另一个节点,与Gen所匹配,查找<Gen>
                    XmlNode urlset = xmlDoc.SelectSingleNode("urlset");
                    Com_AttachmentBll bll = new Com_AttachmentBll();
                    List<Com_Attachment> alist = bll.GetAttachmentList(null, null, null);
                    foreach (var item in alist)
                    {
                        XmlElement url = xmlDoc.CreateElement("url");
                        XmlElement loc = xmlDoc.CreateElement("loc");//必填,定义某一个链接的入口,每一条数据必须要用<url>和</url>来标示//必填,URL长度限制在256字节内
                        XmlElement lastmod = xmlDoc.CreateElement("lastmod");//更新时间标签,非必填,用来表示最后更新时间
                        XmlElement changefreq = xmlDoc.CreateElement("changefreq");//更新频率标签,非必填,用来告知引擎页面的更新频率
                        XmlElement priority = xmlDoc.CreateElement("priority");//优先权标签,优先权值0.0-1.0,用来告知引擎该条url的优先级
                        string ul = "http://www.yealuo.com/Home/Detail";
                        loc.InnerText = ul + "?" + item.FileID;
                        lastmod.InnerText = DateTime.Now.ToString("yyy-MM-dd");
                        changefreq.InnerText = "daily";
                        priority.InnerText = "0.8";
                        url.AppendChild(loc);
                        url.AppendChild(lastmod);
                        url.AppendChild(changefreq);
                        url.AppendChild(priority);
                        urlset.AppendChild(url);
                    }
                    DirFileHelper.CreateDirectory(Server.MapPath("~/Resource/360Map/"));
                    xmlDoc.Save(Server.MapPath("~/Resource/360Map/Sitemap.xml"));
                    return 1;
                }
                catch (Exception ex)
                {
    
                    return 0;
                }
            }
            /// <summary>
            /// 假删方法(会刊)
            /// </summary>
            /// <param name="KeyValue"></param>
            /// <returns></returns>
            public ActionResult DeleteOther(string KeyValue)
            {
                Com_AttachmentBll bll = new Com_AttachmentBll();
    
                try
                {
                    int IsOk = 1;
                    string Message = "删除成功";
                    if (!string.IsNullOrEmpty(KeyValue))
                    {
                        string[] array = KeyValue.Split(',');
                        foreach (var item in array)
                        {
                            Com_Attachment Oldentity = bll.Factory.FindEntity(item);//获取没更新之前实体对象
                            Oldentity.DeleteMark = 1;
                            Oldentity.Modify(item);
                            IsOk = bll.Factory.Update(Oldentity);
                            this.WriteLog(IsOk, Oldentity, Oldentity, item, Message);
                        }
                    }
                    else
                    {
                        Message = "删除失败";
                        IsOk = 1;
    
                    }
                    return Content(new JsonMessage { Success = true, Code = IsOk.ToString(), Message = Message }.ToString());
                }
                catch (Exception ex)
                {
                    this.WriteLog(-1, null, null, KeyValue, "操作失败:" + ex.Message);
                    return Content(new JsonMessage { Success = false, Code = "-1", Message = "操作失败:" + ex.Message }.ToString());
                }
    
            }
    
            /// <summary>
            /// 获取关键字
            /// </summary>
            /// <param name="title"></param>
            /// <returns></returns>
            public ActionResult GetContentKey(string title)
            {
                Base_DataDictionaryDetailBll bll = new Base_DataDictionaryDetailBll();
                List<Base_DataDictionaryDetail> dlist = bll.GetDataDictionaryList(title, "ContentKey");
                return Content(dlist.ToJson());
            }
        }
    }

    (2)Index.cshtml

    @{
        ViewBag.Title = "素材管理";
        Layout = "~/Views/Shared/_LayoutMange.cshtml";
    }
    <style>
        html {
            background-color: #f3f4f4;
        }
    
        .w_header .header-nav .nav-item li a.wzgl {
            border-bottom: 2px solid #2D81E0;
            background-color: #E8F4FF;
            color: #2D81E0;
            font-weight: bold;
        }
    
        .ContentKeyBox {
            padding-left: 85px;
            padding-top: 15px;
            line-height: 25px;
        }
    
            .ContentKeyBox a {
                margin: 5px;
                color: #666;
                display: inline-block;
                cursor: pointer;
            }
    
                .ContentKeyBox a:hover, .ContentKeyBox a.on {
                    background-color: #0b234e;
                    color: #fff;
                }
    
        .w_center .center-nav-item a.scgl {
            color: #156cd1;
        }
    </style>
    <div class="w_center clear mAuto">
        @Html.Partial("_PartialNav")
        <div class="center-main font-yahei R">
            <div class="center-main-nav">
                <a href="javascript:;" class="center-main-tag action" style="border-left:0 none;">素材编辑</a>
            </div>
            <div class="center-main-box" style="margin-top:0;">
                <div class="toolbarBox clear">
                    <div id="searchForm" class="L searchForm">
                        <span class="seachTit">素材标题:</span>
                        <input type="text" id="FileTitle" name="FileTitle" class="seachText" value="" />
                        <a id="searchBtn" class="searchBtn" href="javascript:;" title="搜索"></a>
                    </div>
                    <div class="toolbar R">
                        <input type="button" value="新增素材" class="addBtn greenBtn" onclick="AddEditBtn(0,$(this))" />
                    </div>
                </div>
                <ul class="list-ui clear" id="list-ui"></ul>
                <div id="listPage" class="m_pageBar com_pageBar" style="padding:0 30px;"></div>
            </div>
    
        </div>
    </div>
    
    
    @*分页数据模版*@
    <script id="tempBody" type="text/template">
        {#each data as item}
        <li class="list-item">
            <div class="img-box">
                <img src="!{item.FileMinCover}" width="135" height="185" />
                <div class="list-mask">
                    <a href="javascript:;" onclick="AddEditBtn(1,$(this))" data-id="!{item.FileID}" class="list-btn list-edit L"><img src="/Content/Images/slice/edit.png" /> <span>编辑</span></a>
                    <a href="javascript:;" onclick="delBtn($(this))" class="list-btn list-close R" data-id="!{item.FileID}"><img src="/Content/Images/slice/close.png" /> <span>删除</span></a>
                    <a href="!{item.FileIndexUrl}" target="_blank" class="list-btn list-show L"><img src="/Content/Images/slice/show.png" /> <span>预览</span></a>
                </div>
            </div>
            <div class="list-title" title="!{item.FileTitle}">!{subString(item.FileTitle, 15)}</div>
        </li>
        {#/each}
    </script>
    
    @*隐藏弹窗模版*@
    <script id="ReplyEdit" type="text/template">
        <div style="margin:20px 20px;">
            <form id="form1" action="/BackstageModule/AttachmentMange/SubmitFormData" method="post" enctype="multipart/form-data" style="margin: 1px">
                <input type="hidden" id="KeyValue" name="KeyValue" />
                <table class="layer-table-form">
    
                    <tr>
                        <td><span class="layer-form-tit">标题:</span><input type="text" name="FileTitle" class="layer-form-txt" id="FileTitle" datacol="yes" err="标题" checkexpession="NotNull" /></td>
                    </tr>
                    <tr>
                        <td><span class="layer-form-tit">金币:</span><input type="text" name="Integral" class="layer-form-txt" id="Integral" datacol="yes" err="金币" checkexpession="NumOrNull" /></td>
                    </tr>
                    <tr>
                        <td>
                            <span class="layer-form-tit">类型:</span>
                            <select name="FileType" class="layer-form-select" id="FileType" datacol="yes" err="类型" checkexpession="NotNull">
                                <option value="">==请选择==</option>
                                <option value="WEB">网站模板</option>
                                <option value="WAP">手机端</option>
                                <option value="H5C3">HTML5 CSS3</option>
                                <option value="WJS">网页特效</option>
                                <option value="FLASH">flash素材</option>
                                <option value="PIC">网页素材</option>
                                <option value="SYS">网站源码</option>
                            </select>
                        </td>
                    </tr>
                    <tr>
                        <td>
                            <div class="layer-form-tit L">封面:</div>
                            <input type="text" name="FileCoverSet" id="FileCoverSet" class="layer-form-txt url1 L" readonly="readonly" style="display:none;" placeholder="请上传.JPG|.JPEG|.PNG|.GIF|.BMP格式的图片" datacol="yes" err="封面" />
                            <input type="text" name="FileCover" id="FileCover" class="layer-form-txt url2 L" readonly="readonly" placeholder="请上传.JPG|.JPEG|.PNG|.GIF|.BMP格式的图片" datacol="yes" err="封面" />
                            <div class="FileBox L">
                                <input class="file upFile" type="file" name="FileCover" value="" onchange="SetFileVal($(this))" />
                            </div>
                        </td>
                    </tr>
                    <tr>
                        <td>
                            <div class="layer-form-tit L">附件:</div>
                            <input type="text" name="FileUrlSet" id="FileUrlSet" class="layer-form-txt url1 L" readonly="readonly" style="display:none;" placeholder="请上传.zip格式的文件" datacol="yes" err="附件" />
                            <input type="text" name="FileUrl" id="FileUrl" class="layer-form-txt url2 L" readonly="readonly" placeholder="请上传.PDF|.DOC|.DOCX格式的文件" datacol="yes" err="封面" />
                            <div class="FileBox L">
                                <input class="file upFile" type="file" name="FileUrl" value="" onchange="SetFileVal($(this))" />
                            </div>
                        </td>
                    </tr>
                    <tr>
                        <td style="height:auto;vertical-align:top;">
                            <div><span class="layer-form-tit">关键字:</span><input style="background-color:#efefef;border:0 none;405px;" type="text" name="ContentKey" class="layer-form-txt" id="ContentKey" datacol="yes" err="关键字" checkexpession="NotNull" readonly="readonly" /></div>
                            <div><span class="layer-form-tit">输入关键字:</span><input type="text" class="layer-form-txt" id="SetContentKey" /><a style="display:inline-block;" class="addBtn yellowBtn" onclick="SetContentKey($('#SetContentKey').val()); $('#SetContentKey').val('')">加入</a></div>
                            <div class="ContentKeyBox">
    
                            </div>
                        </td>
                    </tr>
                    <tr>
                        <td>
                            <span class="layer-form-tit">介绍:</span>
                            <textarea name="Remarks" class="layer-form-txt" style="height:70px;" id="Remarks" datacol="yes" err="介绍" checkexpession="NotNull"></textarea>
                        </td>
                    </tr>
    
                </table>
    
            </form>
        </div>
    </script>
    
    @*隐藏下载弹窗模版*@
    <script id="DownList" type="text/template">
        <div style="margin:20px 20px;">
            <input type="hidden" id="KeyValue" name="KeyValue" />
            <table class="layer-table-form DownList"></table>
        </div>
    </script>
    @section scripts{
        <script type="text/javascript">
            var KeyValue = "";
            $(function () {
                juicer.register('formatDate', formatDate);
                juicer.register('subString', subString);
                TagNavSet();
                getPageData();
                searchEvent();
                //getPageData2();
            });
            //菜单切换
            function TagNavSet() {
                $(".center-main-tag").on("click", function () {
                    if (!$(this).hasClass("action")) {
                        $(this).addClass("action").siblings(".center-main-tag").removeClass("action");
                        $(".center-main-box").hide();
                        $(".center-main-box").eq($(this).index()).show();
                    }
                })
            }
            //初始化分页函数
            function getPageData() {
                var param = {
                    rows: 10,
                    url: "/BackstageModule/AttachmentMange/GetTable",
                    sidx: "CreateDate",
                    sord: "DESC",
                    searchForm: "#searchForm",
                    infoPanel: '#list-ui',
                    barPanel: '#listPage',
                    template: '#tempBody',
                    callback: handleSuccess
                }
                Pager.init(param);
    
            }
    
    
            //查询按钮绑定事件
            function searchEvent() {
                $("#searchBtn").on("click", function () {
                    getPageData();
                });
            }
            //添加编辑弹窗
            function AddEditBtn(num, elem) {
                var allVal = "";
                if (num > 0) {
                    allVal = elem.attr("data-id");
                }
                layer.open({
                    title: "添加/编辑",
                    type: 1,
                    skin: 'layui-layer-rim', //加上边框
                    area: ['650px', '600px'], //宽高
                    content: $("#ReplyEdit").html(),
                    btn: ['保存', '取消'], //只是为了演示
                    yes: function () {
                        AcceptClick();
                    }
                });
                InitControl(allVal);
                GetContentKey("");
            }
    
    
            //保存按钮
            function AcceptClick() {
    
                if (!CheckDataValid('#form1', true)) {
                    return false;
                }
    
                //提交表单
                $("#form1").ajaxSubmit({
                    dataType: "json",
                    beforeSubmit: function () {
                        layer.msg('正在提交信息,请稍后…', { icon: 16, shade: 0.2, time: 0 });
                    },
                    success: function (data) {
                        if (data.Success) {
                            layer.msg(data.Message, { icon: data.Code, time: 1000 }, function () {
                                layer.closeAll();
                                getPageData();
                            });
    
                        }
                        else {
                            layer.alert(data.Message, { icon: data.Code });
                        }
                    }
                });
            }
            //删除
            function delBtn(elem) {
                var allVal = elem.attr("data-id");
                layer.confirm("是否删除这" + allVal.split(",").length + "条数据?", { icon: 0 }, function () {
                    AjaxJson("/BackstageModule/AttachmentMange/DeleteOther", { KeyValue: allVal }, function (data) {
                        layer.msg(data.Message, { icon: data.Code, time: 1000 }, function () {
                            getPageData();
                        });
                    });
                });
    
            }
            //文件域选择设置
            function SetFileVal(elem) {
                var part = elem.parents("td");
                if (!!elem.val()) {
                    part.find(".url1").val(elem.val()).show().attr("checkexpession", "NotNull");
                    part.find(".url2").hide().removeAttr("checkexpession");
                }
                else {
                    part.find(".url1").show().attr("checkexpession", "NotNull");
                    part.find(".url2").hide().removeAttr("checkexpession");
                }
            }
            //得到一个对象实体
            function InitControl(allVal) {
                AjaxJson("/BackstageModule/AttachmentMange/SetForm", { KeyValue: allVal }, function (data) {
                    SetWebControls(data, "#form1");
                    $("#KeyValue").val(data.FileID);
                    $("#FileCover").attr("checkexpession", "NotNull");
                    $("#FileUrl").attr("checkexpession", "NotNull");
                });
            }
    
    
            //分页数据加载后绑定的函数
            function handleSuccess() {
                checkAll();
            }
            //全选(包括)
            function checkAll() {
                //全选按钮
                $(".dataTable thead").find(".ckbAll").change(function () {
                    var chkAll = $(this);
                    var chkVal = chkAll.prop("checked");
                    if (chkVal == "checked" || chkVal == true) {
                        $(".dataTable tbody tr").each(function () {
                            var chk = $(this).find(":checkbox");
                            chk.prop("checked", "checked");
                        });
                    }
                    else {
                        $(".dataTable tbody tr").each(function () {
                            var chk = $(this).find(":checkbox");
                            chk.removeAttr("checked");
                        });
                    }
                });
            }
            //关键字设置
            function SetContentKey(val) {
                var _thisVal = $("#ContentKey").val();
                if (_thisVal.indexOf(val) > 0) {
                    layer.msg("已包含该关键字", { icon: "-1", time: 2000 });
                }
                else if (!!val) {
                    (!_thisVal) ? $("#ContentKey").val(val) : $("#ContentKey").val(_thisVal + "," + val);
                }
            }
            //获取关键字
            function GetContentKey(title) {
                $.post("/BackstageModule/AttachmentMange/GetContentKey", { title: title }, function (data) {
    
                    var strHtml = "";
                    for (var i = 0; i < data.length; i++) {
                        strHtml += "<a onclick="SetContentKey('" + data[i].DataDictionaryTitle + "');$(this).addClass('on');">" + data[i].DataDictionaryTitle + "</a>";
                    }
                    $(".ContentKeyBox").html(strHtml);
                }, "json")
            }
    
    
    
        </script>
    
    }

    (3)Com_AttachmentBll.css

    using Bobo.DataAccess;
    using Bobo.Repository;
    using Bobo.Utilities;
    using IA.Entity;
    using System;
    using System.Collections.Generic;
    using System.Data;
    using System.Data.Common;
    using System.IO;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Web;
    
    namespace IA.Business
    {// <summary> 
        /// 素材表 
        /// <author> 
        ///     <name>YHB</name> 
        ///      <date>2018.10.18</date> 
        /// </author> 
        /// </summary> 
        public class Com_AttachmentBll : RepositoryFactory<Com_Attachment>
        {
           
            /// <summary>
            /// 获取附件数据
            /// </summary>
            /// <param name="ArticleTitle"></param>
            /// <param name="jgp"></param>
            /// <returns></returns>
            public DataTable GetTablePage(string FileTitle, ref JqGridParam jgp)
            {
                StringBuilder whereSql = new StringBuilder();
                List<DbParameter> param = new List<DbParameter>();
    
                whereSql.Append(@" AND DeleteMark<>1");
                if (!StringHelper.IsNullOrEmpty(FileTitle))
                {
                    whereSql.Append(@" AND FileTitle LIKE @FileTitle");
                    param.Add(DbFactory.CreateDbParameter("@FileTitle", '%' + FileTitle + '%'));
                }
    
                return Factory.FindTablePage(whereSql.ToString(), param.ToArray(), ref jgp);
            }
            /// <summary>
            /// 获取附件列表
            /// </summary>
            /// <param name="DataID"></param>
            /// <returns></returns>
            public List<Com_Attachment> GetAttachmentList(string DataID, int? topNum, string ByType)
            {
                StringBuilder Sql = new StringBuilder();
                List<DbParameter> param = new List<DbParameter>();
                string where = "*";
                if (!StringHelper.IsNullOrEmpty(topNum) && topNum > 0)
                {
                    where = "TOP(" + topNum + ") *";
                }
                Sql.Append(@"SELECT " + where + " FROM  Com_Attachment WHERE DeleteMark<>1");
                if (!StringHelper.IsNullOrEmpty(DataID))
                {
                    Sql.Append(@" AND DataID=@DataID");
                    param.Add(DbFactory.CreateDbParameter("@DataID", DataID));
                }
                if (!StringHelper.IsNullOrEmpty(ByType))
                {
                    Sql.Append(@" ORDER BY " + ByType + " DESC");
                }
                return Factory.FindListBySql(Sql.ToString(), param.ToArray());
            }
            
        }
    }

    (4)效果预览:

    素材管理.png

    素材管理2.png

  • 相关阅读:
    JS 学习笔记
    Input控件只允许输入指定字符
    NPOI导出excel使用
    combobox级联检索下拉选择框
    vue父组件调用子组件方法
    EasyUI设置Layout自适应浏览器宽度和高度
    EasyUI创建选项卡并判断是否打开
    Jquery+ajaxfileupload上传文件
    Jquery禁用网页右键菜单
    c#删除指定文件夹中今天之前的文件
  • 原文地址:https://www.cnblogs.com/boyzi/p/9963797.html
Copyright © 2020-2023  润新知