ASP.NET MVC 4.0 CKEditor jquery 文章管理 图片上传 解决方案

文章修改,新增业务的C#代码

[HttpPost]
        [ValidateInput(false)]
        public ActionResult AddNew(FormCollection values)
        {
            var db = new ddrDBEntities();
            XinWen obj = new XinWen();
            if (!string.IsNullOrEmpty(Request["id"]))
            {
                var id = Guid.Parse(Request["id"]);
                obj = db.XinWen.Where(m => m.Id == id).FirstOrDefault();
            }
            else
            {
                obj.Id = Guid.NewGuid();
                db.XinWen.AddObject(obj);
            }
            obj.BiaoTi = values["BT"];
            obj.NeiRong = values["NR"];
            obj.ShiJian = DateTime.Now;
            var pics = Request["filesHidden"].Split("#".ToCharArray(), StringSplitOptions.RemoveEmptyEntries);
            foreach (var pic in pics)
            {
                db.TuPian.Where(m => m.LuJing == pic).ToList().ForEach(m =>
                {
                    m.FId = obj.Id;
                });
            }
            db.SaveChanges();
            db.Dispose();
            return Redirect("/admin/news/");
        }

文章修改,新增业务的cshtml代码

@model ddr.Models.XinWen
@{
    ViewBag.Title = "德迪尔电器有限公司-后台管理-新闻";
    Layout = "~/Views/Shared/_AdminLayout.cshtml";
}
<script type="text/javascript" src="/CONTENT/CK/ckeditor.js"></script>
<script type="text/javascript" src="/CONTENT/CK/adapters/jquery.js"></script>
<script>
    var g_blnCheckUnload = false;
    function BypassCheck() { g_blnCheckUnload = true; }
    window.onbeforeunload = function () { if (g_blnCheckUnload) return ("确认离开当前页面吗?未保存的数据将会丢失!"); }
    $(function () {
        var config = {
            height: 500
        };
        $('.ckeditor1').ckeditor(config);
        var pics = '@ViewBag.Pics';
        if(pics.length>0){
            $("#filesHidden").val(pics);
            setText();
        }
    });
    function valChange(fn) {
        var val = $("#filesHidden").val();
        $("#filesHidden").val(val + "#" + fn);
        var v = $(".ckeditor1").val();
        $(".ckeditor1").val(v + "<img src='/content/wj/" + fn + "' style='border:0px;' />");
        setText();
    }
    function setText() {
        $("#files").empty();
        var arr = $("#filesHidden").val().split('#');
        var str = '';
        for (var i = 0; i < arr.length; i++) {
            if (arr[i].length > 0) {
                str += "<div class=" + arr[i] + "><a href='/content/wj/" + arr[i] + "' target='_blank'>" + arr[i] + "</a>    ";
                str += "<a href=\"javascript:delfile(\'" + arr[i] + "\');\">删除该图片</a></div>";
            }
        }
        $("#files").append(str);
    }
    function delfile(p) {
        g_blnCheckUnload = false;
        $.getJSON("/file/delfile/?fn=" + p, function (data) {
            if (data["flag"] == true) {
                var val = $("#filesHidden").val();
                $("#filesHidden").val(val.replace('#' + p, ""));
                var v = $(".ckeditor1").val();
                $(".ckeditor1").val(v.replace('<img src="/content/wj/' + p + '" style="border:0px;" />', ""));
                setText();
            }
        });
    }
</script>
<div style="margin-right: 60px; margin-left: 60px; text-align: left;">
    <form action="/admin/addnew/?id=@Request["id"]" method="post">
    <input type="text" name="BT" style="width: 100%;" value="@(Model == null ? "" : Model.BiaoTi)" /><br />
    <div id="files">
    </div>
    <input type="hidden" name="filesHidden" id="filesHidden" />
    <iframe src="/file/" style="height:30px; border:0px;" frameborder="0" width="100%"></iframe>
    <textarea class="ckeditor1" name="NR">
    @(Model == null ? "" : Model.NeiRong)
</textarea>
    <div style="text-align: center;">
        <input onclick="BypassCheck; return true;" type="submit" value="提交" style="width: 120px;" />
        <input type="reset" value="重置" style="width: 120px;" />
    </div>
    </form>
</div>

图片上传IFRAME的C#代码

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.IO;
using ddr.Models;

namespace ddr.Controllers
{
    public class FileController : Controller
    {
        //
        // GET: /File/

        public ActionResult Index()
        {
            return View();
        }
        [HttpPost]
        public ActionResult AddFile(HttpPostedFileBase wj)
        {
            string sn = string.Empty;
            if (wj != null)
            {
                if (wj.ContentLength > 0)
                {
                    sn = wj
                        .FileName
                        .Insert(wj.FileName.LastIndexOf('.'), "-"+DateTime.Now.ToString("yyyyMMddhhmmss"));
                    sn = Path.Combine(Server.MapPath("/Content/WJ"), sn);
                    wj.SaveAs(sn);

                    var db = new ddrDBEntities();
                    var obj = new TuPian();
                    obj.Id = Guid.NewGuid();
                    obj.LuJing = Path.GetFileName(sn);
                    db.TuPian.AddObject(obj);
                    db.SaveChanges();
                    db.Dispose();
                }
            }
            return Redirect("/file/?fn=" + Path.GetFileName(sn));
        }

        public JsonResult DelFile()
        {
            var fn = Request["fn"];
            if (!string.IsNullOrEmpty(fn))
            {
                var db = new ddrDBEntities();
                var obj = db.TuPian.Where(m => m.LuJing == fn).FirstOrDefault();
                db.TuPian.DeleteObject(obj);
                db.SaveChanges();
                db.Dispose();
                fn = Path.Combine(Server.MapPath("/Content/WJ"), fn);
                var fi = new FileInfo(fn);
                fi.Delete();
            }
            var result = new JsonResult();
            result.JsonRequestBehavior = JsonRequestBehavior.AllowGet;
            result.Data = new { flag = true };
            return result;

        }

    }
}

图片上传IFRAME的cshtml代码

@{
    Layout = null;
}
<!DOCTYPE html>
<html>
<head>
    <title>德迪尔电器</title>
    <script src="@Url.Content("~/Scripts/jquery-1.4.4.min.js")" type="text/javascript"></script>
    <script>
        $(function () {
            var fn = '@(Request["fn"])';
            if (fn.length > 0) {
                parent.valChange(fn);
            }
        });
    </script>
</head>
<body style="margin: 0px; padding: 0px; background: #e8e8e8; border: 0px;">
    <form method="post" action="/file/AddFile/" enctype="multipart/form-data">
    <input type="file" name="wj"  />
    <input type="submit" value="上传" />
    </form>
</body>
</html>

 

 

时间: 2024-10-23 14:19:00

ASP.NET MVC 4.0 CKEditor jquery 文章管理 图片上传 解决方案的相关文章

ASP.NET MVC应用程序把文字写在图片上

原文:ASP.NET MVC应用程序把文字写在图片上 Insus.NET实现这篇<MVC把随机产生的字符串转换为图片>http://www.cnblogs.com/insus/p/3624235.html 之后,把字符串转换为图片,不如尝试,把字符串写在一张图片之上.好像有点添加水印的意思. 如果你了解此篇,实现水印的功能也自然懂得了. 参考下面方法,是核心的功能函数,传入文本,以及图片,返回的是Bitmap:   创建控件器,编写两个Action:   接下来,创建视图:   演示:    

jQuery+HTML5实现图片上传前预览效果_jquery

本文实例讲述了jQuery+HTML5实现图片上传前预览效果.分享给大家供大家参考.具体如下: 这里主要是使用HTML5 的File API,建立一個可存取到该file的url,一个空的img标签,ID为img0,把选择的文件显示在img标签中,实现图片预览功能.请选择支持HTML API的浏览器,比如谷歌Chrome和火狐等. 运行效果如下图所示: 在线演示地址如下: http://demo.jb51.net/js/2015/jquery-html5-pic-upload-pre-view-c

上传文件-ckeditor整合ckfinder实现图片上传

问题描述 ckeditor整合ckfinder实现图片上传 这是咋回事??? 解决方案 ckEditor+ckFinder整合实现上传功能黑马程序员_ckeditor+ckfinder实现本地图片上传struts2整合CKEditor和CKFinder实现上传 解决方案二: 你没点击"上传到服务器"这个按钮吧..要先上传才能点击确定

将ASP.NET MVC 2.0部署在IIS6和IIS7上的教程

我的程序开发环境: 系统:Win7 IIS:IIS7 开发工具:VS2008 SP1 MVC版本:ASP.NET MVC 2.0 RC 在部署MVC应用之前,一定要确保你的程序BIN文件夹下面是否包含 System.Web.Mvc.dll(非常重要),如图: 如果没有, 请在你的MVC项目中,打开引用列表,如图: 鼠标右键点击System.Web.Mvc,选择"属性",转到下面窗口: 将"复制本地"设为True (默认为False),然后生成一下项目,System.

将ASP.NET MVC 2.0 部署在IIS6和IIS7上的教程

原文:http://www.cnblogs.com/taven/archive/2010/01/13/1646244.html   我的程序开发环境: 系统:Win7  IIS:IIS7 开发工具:VS2008 SP1 MVC版本:ASP.NET MVC 2.0 RC   在部署MVC应用之前,一定要确保你的程序BIN文件夹下面是否包含 System.Web.Mvc.dll(非常重要),如图:   如果没有, 请在你的MVC项目中,打开引用列表,如图:    鼠标右键点击System.Web.M

一起谈.NET技术,将ASP.NET MVC 2.0 部署在IIS6和IIS7上的教程

开发环境:Win7+IIS7+VS2008 SP1+ASP.NET MVC 2.0 RC 在部署MVC应用之前,一定要确保你的程序BIN文件夹下面是否包含 System.Web.Mvc.dll(非常重要),如图: 如果没有, 请在你的MVC项目中,打开引用列表,如图:   鼠标右键点击System.Web.Mvc,选择"属性",转到下面窗口: 将"复制本地"设为True (默认为False),然后生成一下项目,System.Web.Mvc.dll就会出现在BIN文件

jQuery移动端图片上传组件_jquery

本文实例为大家分享了移动端图片上传组件,供大家参考,具体内容如下 Imageupload使用File API+canvas 客户端压缩图片,并实现文件上传服务端 文件依赖 JQUERY 参数API loading:'.loading', 页面显示loading的图标selector url:'', 接收数据的api接口地址 maxFileSize:1010241024, 服务端支持的最大单文件大小 format:/^image/i, 支持的文件格式. images text ..... isCo

推荐:PHP+jQuery+Ajax多图片上传的实例

Ajax多图片上传效果界面 我们在页面上放置一个form表单,使用post提交到后台php处理程序upload.php,注意enctype属性设置要支持文件上传.#preview用来显示上传完毕后的图片.关于css样式设置本文不加说明,请参照下载包的源码.    代码如下 复制代码 <form id="imageform" method="post" enctype="multipart/form-data" action="up

ASP.NET MVC 3.0学习系列文章—NuGet and ASP.NET MVC 3.0

1.Introduction NuGet is a Visual Studio 2010 extension that makes it easy to add, remove, and update libraries and tools in Visual Studio projects that use the .NET Framework. This topic lists documentation that will help you use NuGet packages and c