• jquery图片上传


    总结两个图片上传的方法:

    一:使用jquery.form中的ajaxSubmit来实现上传。

    <script src="~/JavaScript/jquery-1.10.2.min.js" type="text/javascript"></script>
    <script src="~/JavaScript/jquery.form.js" type="text/javascript"></script>
    <script type="text/javascript">
        $(document).ready(function () {
            //异步上传图片
            $("#btnUpload").click(function () {
                if ($.trim($("#fileUp").val()) == "") {
                    alert("请选择一个图片文件,再点击上传。");
                    return;
                }
                if (!isImageFileName($.trim($("#fileUp").val()))) {
                    alert("请选择一个图片文件,文件类型错误。");
                    return;
                }
                $('#formFile').ajaxSubmit({
                    success: function (msg) {
                        if (msg.indexOf("UserFolder") != -1) {
                            var start = msg.indexOf(">");
                            if (start != -1) {
                                var end = msg.indexOf("<", start + 1);
                                if (end != -1) {
                                    msg = msg.substring(start + 1, end);
                                }
                            }
                            $("#upLoadImageShow").attr('src', msg);//这里是重新设置图片的地址
                        }
                        else {
                            alert(msg);
                        }
                    }
                });
            });
        });
    
        function isImageFileName(str) {
            var reg = /([0-9]{1,}.jpg)|([0-9]{1,}.gif)|([0-9]{1,}.png)|([0-9]{1,}.bmp)/;
            if (reg.test(str)) {
                return true;
            }
            return false;
        }
    </script>
    <div>
        <form id='formFile' name='formFile' method="post" action="/Home/UpLoadDemo2" target='frameFile' enctype="multipart/form-data">
            <div>
                <img alt="" src="~/Image/0.jpg" id="upLoadImageShow" width="130" height="130" />
                <input type='file' id='fileUp' name='fileUp' title="选择照片" />
                <input id="btnUpload" type="button" name="" value="上传" />
            </div>
        </form>
    </div>
    View Code
    [HttpPost]
            public JsonResult UpLoadDemo2()
            {
                //定义错误消息
                string msg = "";
                //接受上传文件
                HttpPostedFileBase hp = Request.Files["fileUp"];
                if (hp == null)
                {
                    msg = "请选择文件.";
                }
                //获取上传目录 转换为物理路径
                string uploadPath = Server.MapPath("~/UserFolder/");
                //获取文件名
                string fileName = DateTime.Now.Ticks.ToString() + System.IO.Path.GetExtension(hp.FileName);
                //获取文件大小
                long contentLength = hp.ContentLength;
                //文件不能大于1M
                if (contentLength > 1024 * 1024)
                {
                    msg = "文件大小超过限制要求.";
                }
                //保存文件的物理路径
                string saveFile = uploadPath + fileName;
                try
                {
                    //保存文件
                    hp.SaveAs(saveFile);
                    msg = "/UserFolder/" + fileName;
                }
                catch
                {
                    msg = "上传失败.";
                }
    
                JsonResult rs = Json(msg);
                rs.ContentType = "text/html";
                return rs;
            }
    View Code

    二:使用jquery.uploadify实现上传。

    <script src="~/JavaScript/jquery-1.10.2.min.js" type="text/javascript"></script>
    <script src="~/Content/uploadify/jquery.uploadify.min.js" type="text/javascript"></script>
    <link href="~/Content/uploadify/uploadify.css" rel="stylesheet" />
    <script type="text/javascript">
        $(document).ready(function () {
            $('#uploadify').uploadify({
                uploader: '/Home/upload',           // 服务器端处理地址
                swf: '/Content/uploadify/uploadify.swf',    // 上传使用的 Flash
    
                 60,                          // 按钮的宽度
                height: 23,                         // 按钮的高度
                buttonText: "上传",                 // 按钮上的文字
                buttonCursor: 'hand',                // 按钮的鼠标图标
    
                fileObjName: 'Filedata',            // 上传参数名称
    
                // 两个配套使用
                fileTypeExts: "*.jpg;*.png",             // 扩展名
                fileTypeDesc: "请选择 jpg png 文件",     // 文件说明
    
                auto: true,                // 选择之后,自动开始上传
                multi: true,               // 是否支持同时上传多个文件
                queueSizeLimit: 5,          // 允许多文件上传的时候,同时上传文件的个数
                onUploadSuccess: function (file, data, response) {      //成功返回内容(data)
                    $("#upImg").attr("src", "../UserFolder/" + data);
                    $("#upImg").css("display", "block");
                }
            });
        });
    </script>
    
    <div>
        <h1>uploadify 3.2 文件上传的基本实现</h1>
        <p>
            使用了 12 个参数
            <ul>
                <li>uploader: 服务器端接收上传文件的地址</li>
                <li>swf:用来实现客户端支持的 Flash</li>
    
                <li>width:按钮的宽度</li>
                <li>height:按钮的高度</li>
                <li>buttonText: 上传按钮的文字</li>
                <li>buttonCursor:按钮的鼠标图标</li>
    
                <li>fileObjName:上传文件的请求参数名称</li>
    
                <li>fileTypeExts:上传文件过滤使用的扩展名</li>
                <li>fileTypeDesc:上传文件的类型描述</li>
    
                <li>auto:选择之后,是否自动开始上传</li>
                <li>multi:是否允许上传多个文件</li>
                <li>queueSizeLimit:同时选择多个文件的限额</li>
            </ul>
        </p>
        <span id="uploadify"></span>
        <img id="upImg" src="" alt="" />
    </div>
    View Code
    public ActionResult Upload(HttpPostedFileBase Filedata)
            {
                // 如果没有上传文件
                if (Filedata == null || string.IsNullOrEmpty(Filedata.FileName) || Filedata.ContentLength == 0)
                {
                    return this.HttpNotFound();
                }
    
                // 保存到 ~/UserFolder 文件夹中
                string filename = DateTime.Now.Ticks.ToString() + System.IO.Path.GetExtension(Filedata.FileName);
                string virtualPath = string.Format("~/UserFolder/{0}", filename);
                // 文件系统不能使用虚拟路径
                string path = Server.MapPath(virtualPath);
                Filedata.SaveAs(path);
    
                return Content(filename);
            }
    View Code
  • 相关阅读:
    (转)AS3中实现卡马克卷轴算法
    (转)flash位图缓存cacheAsBitmap
    (转)addFrameScript函数的纠结
    (转)flash安全策略文件
    (转)脏矩形技术学习
    (转)stopImmediatePropagation 和stopPropagation的区别
    (转)flash对象池技术
    揭开嵌入式C面试题背后的玄机
    一次遍历找链表倒数第n个节点
    N!的尾部连续0的个数
  • 原文地址:https://www.cnblogs.com/ChangeNow/p/3613809.html
Copyright © 2020-2023  润新知