图片上传和显示——上传图片——上传文件)==ZJ

http://www.cnblogs.com/yc-755909659/archive/2013/04/17/3026409.html aspx上传

http://www.cnblogs.com/mq0036/p/3715024.html  异步上传

-----------------------------------------ZJ版

MVC中利用ajaxfileupload.js插件实现异步上传:(这个既可以实现图片上传也可以实现文件上传)

JS引入:

<script src="~/Scripts/jquery-1.8.2.min.js"></script>
<script src="~/Content/UploadFile/ajaxfileupload.js"></script>

前台实现:

//Html部分
<div>
        <h2>请选择要上传的文件</h2>
        <input type="file" id="imgFile" name="imgFile" /><input type="button" value="上传" id="btnUp"/>
        <br />
        <div>
            <img id="articleFacePhotoImg" />
        </div>
    </div>
//JS引入
 <script src="~/Scripts/jquery-1.8.2.min.js"></script>
 <script src="~/Content/UploadFile/ajaxfileupload.js"></script>
//上传文件JS调用代码
<script type="text/javascript">
        //异步上传文件
        uploadFacePhoto = function () {
            //判断内容是否为空
            if ($("#imgFile").val().length <= 0) {
                return;
            }
            //执行异步上传
            $.ajaxFileUpload({
                url: '@Url.Action("UploadImg","Home")',//上传到文件服务器请求地址
                type: 'post',
                data: { dir: 'image' },//自定义参数
                secureuri: false,//是否需要安全协议,一般设置为false
                fileElementId: 'imgFile',//文件上传遇的ID
                dataType: 'json',//返回值类型,一般设置为json
                success: function (data)//服务器成功响应处理函数
                {
                    //由于ajaxFileUpload把原来的file元素替换成新的file元素,所以之前绑定的change事件就失效了,需要重新绑定一下
                    $("#imgFile").change(function () {
                        uploadFacePhoto();
                    })                   
                    if (data.error == 0) {
                        $("#articleFacePhotoImg").attr("src", data.url);
                    } else {
                        alert(data.message);
                    }
                }

            });
        }
        //绑定文章封面文件域改变事件       
        $("#imgFile").change(function () {
            uploadFacePhoto();
        });
        //点击实现上传
        //$("#btnUp").click(function () {
        //    uploadFacePhoto();
        //});
    </script>
View Code

//后台实现:

/// <summary>
        /// 上传文件
        /// </summary>
        /// <returns></returns>
        public ActionResult UploadImg(HttpPostedFileBase imgFile,string dir)
        {
            //定义允许上传的文件的扩展名
            Hashtable extTable = new Hashtable();
            extTable.Add("image", "gif,jpg,jpeg,png,bmp");
            extTable.Add("flash", "swf,flv");
            extTable.Add("media", "swf,flv,mp3,wav,wma,wmv,mid,avi,mpg,asf,rm,rmvb");
            extTable.Add("file", "doc,docx,xls,xlsx,ppt,htm,html,txt,zip,rar,gz,bz2");
            if(String.IsNullOrEmpty(dir))
            {
                dir = "image";
            }
            if(!extTable.ContainsKey(dir))//如果不包含
            {
                return Content(JsonConvert.SerializeObject(new { error = 1, message = "文件格式不正确" }));
            }
            if (imgFile == null)
            {
                return Content(JsonConvert.SerializeObject(new { error=1,message="上传文件大小超过限制"}));
            }
            string fileName = imgFile.FileName;
            string fileExt = Path.GetExtension(fileName).ToLower();
            if (String.IsNullOrEmpty(fileExt) || Array.IndexOf(((String)extTable[dir]).Split(','), fileExt.Substring(1).ToLower()) == -1)
            {
                return Content(JsonConvert.SerializeObject(new { error = 1, message = "上传文件扩展名是不允许的扩展名。\n只允许" + ((String)extTable[dir]) + "格式" }));
            }
            //创建文件夹
            string dirPath = "/Files/" + dir + "/";
            if (!Directory.Exists(Request.MapPath(dirPath)))
            {
                //不存在就创建
                Directory.CreateDirectory(Request.MapPath(dirPath));
            }
         //   string newFileName = DateTime.Now.ToString("yyyyMMddHHmmss_ffff") + fileExt;//注意这个写法文件名会有重复,要想不重复请使用Guid或其它方法。有坑需谨慎
            imgFile.SaveAs(Request.MapPath(dirPath + newFileName));
            //判断保存的文件是否存在
            if (System.IO.File.Exists(Request.MapPath(dirPath + newFileName)))
            {
                return Content(JsonConvert.SerializeObject(new { error=0,url=dirPath+newFileName}));
            }
            else
            {
                return Content(JsonConvert.SerializeObject(new { error=1,message="上传文件失败!"}));
            }           
        }

 

ajaxfileupload.js文件链接:http://pan.baidu.com/s/1i4Xezyd 密码:om9x

----------------------上面是简单的图片文件上传演示,下面简单演示下富文本编辑器的使用-------------

前台实现:

//Html部分
<div>
        <!--编辑器开始-->
        <textarea id="editor" name="content" style="width:100%;height:100%"></textarea>
        <input type="button" id="btnSub" value="提交"/>
    </div>
//JS部分
 <script type="text/javascript">
        $(function () {
            //编辑器初始化
            KindEditor.ready(function (K) {
                window.editor = K.create('#editor', {
                    uploadJson: '@Url.Action("UploadImg","Home")'
                });
            });
            $("#btnSub").click(function () {               
                var articleContent = editor.html();
                alert(articleContent);
            });
        })
        
    </script>
//引入文件
<script src="~/Scripts/jquery-1.8.2.min.js"></script>
    <script src="~/Scripts/kindeditor/kindeditor-all-min.js"></script>
    <script src="~/Scripts/kindeditor/plugins/code/code.js"></script>
View Code

后台实现和上面的上传文件后台一致,下面是引入文件链接:http://pan.baidu.com/s/1o8GV1pg 密码:4uum(百度云:KindEditor文件夹)

最后来张图片吧:

posted @ 2016-06-16 22:56  shuai7boy  阅读(511)  评论(0编辑  收藏  举报