图片上传插件用法,JS语法【三】

注意点:

作为文件域(<input type="file">)必须要有name属性,如果没有name属性,上传之后服务器是获取不到图片的。如:正确的写法是<input type="file" id="file1" name="file1" />

dataType参数一定要大写。如:dataType: 'HTML'

一.html

<body>
    <p><input type="file" id="file1" name="file" /></p>
    <input type="button" value="上传" />
    <p><img id="img1" alt="上传成功啦" src="" /></p>
</body>

二.js

  <script src="jquery-1.7.1.js" type="text/javascript"></script>
    <script src="ajaxfileupload.js" type="text/javascript"></script>
    <script type="text/javascript">
        $(function () {
            $(":button").click(function () {
                ajaxFileUpload();
            })
        })
        function ajaxFileUpload() {
            $.ajaxFileUpload
            (
                {
                    url: '/upload.aspx', //用于文件上传的服务器端请求地址
                    secureuri: false, //是否需要安全协议,一般设置为false
                    fileElementId: 'file1', //文件上传域的ID
                    dataType: 'json', //返回值类型 一般设置为json
                    success: function (data, status)  //服务器成功响应处理函数
                    {
                        $("#img1").attr("src", data.imgurl);
                        if (typeof (data.error) != 'undefined') {
                            if (data.error != '') {
                                alert(data.error);
                            } else {
                                alert(data.msg);
                            }
                        }
                    },
                    error: function (data, status, e)//服务器响应失败处理函数
                    {
                        alert(e);
                    }
                }
            )
            return false;
        }
    </script>

三.后台

 protected void Page_Load(object sender, EventArgs e)
        {
            HttpFileCollection files = Request.Files;
            string msg = string.Empty;
            string error = string.Empty;
            string imgurl;
            if (files.Count > 0)
            {
                files[0].SaveAs(Server.MapPath("/") + System.IO.Path.GetFileName(files[0].FileName));
                msg = " 成功! 文件大小为:" + files[0].ContentLength;
                imgurl = "/" + files[0].FileName;
                string res = "{ error:'" + error + "', msg:'" + msg + "',imgurl:'" + imgurl + "'}";
                Response.Write(res);
                Response.End();
            }
        }

四.JS前台页面判断文件内容大小

 function change() {
        $('.imgupload').off("change");   //先关闭一次change
        $('.imgupload').on("change", "#filePicture", function () {
            var bool = testMaxSize(this.files[0]);   //调用方法
            if (bool) {
                $("#zt").text("移入可预览文件");
                var files = window.URL.createObjectURL(this.files[0]);
                $('.laye_img').attr("src", files);
            } else {
                alert("图片大小超过限制,请上传小于1M体积!");
                $("#zt").text("选择上传图片");
                $('.laye_img').attr("src", "");
            }
            imgfloat()//调用
        })
    }
  //判断图片大小
    function testMaxSize(file) {
        if (file) {
            var fileData = file;
            var size = fileData.size;   //注意,这里读到的是字节数
            maxSize = 1048576;   //转化为字节
            if (size <= maxSize) {
                return true;
            } else {
                return false;

            }
        }
    }
  
原文地址:https://www.cnblogs.com/h5monkey/p/6121469.html