zoukankan      html  css  js  c++  java
  • 图片上传和显示——上传图片——上传文件)==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 = "上传文件扩展名是不允许的扩展名。
    只允许" + ((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="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文件夹)

    最后来张图片吧:

  • 相关阅读:
    (转)SpringMVC学习总结
    Golang-函数的defer
    Golang-闭包
    Golang-匿名函数
    Golang-init()
    Golang-递归
    Golang-函数、包、变量的作用域
    Golang-for、break、continue、goto、return
    Golang-程序流程控制 if、switch
    Golang-进制、源码反码补码、位运算
  • 原文地址:https://www.cnblogs.com/shuai7boy/p/5592419.html
Copyright © 2011-2022 走看看