zoukankan      html  css  js  c++  java
  • html5使用FileReader上传图片

    客户端代码是网上找的,修改为.net代码。

    <html>
    <head>
        <meta charset="utf-8">
        <title>使用html5 FileReader获取图片,并异步上传到服务器(not iframe)</title>
        <style type="text/css">
            body
            {
                margin: 0px;
                background: #f2f2f0;
            }
            p
            {
                margin: 0px;
            }
            .title
            {
                color: #FFFF00;
                background: #000000;
                text-align: center;
                font-size: 24px;
                line-height: 50px;
                font-weight: bold;
            }
            .file
            {
                position: absolute;
                100%;
                font-size: 90px;
                display: none;
            }
            .filebtn
            {
                display: block;
                position: relative;
                height: 110px;
                color: #FFFFFF;
                background: #06980e;
                font-size: 48px;
                line-height: 110px;
                text-align: center;
                cursor: pointer;
                border: 3px solid #cccccc;
            }
            .filebtn:hover
            {
                background: #04bc0d;
            }
            .showimg
            {
                margin: 10px auto 10px auto;
                text-align: center;
            }
        </style>
        <script type="text/javascript">
            window.onload = function () {
                // 选择图片  
                document.getElementById('img').onchange = function () {

                    var input = document.getElementById("img");
                    var img = input.files[0];
                    // 判断是否图片  
                    if (!img) {
                        return;
                    }

                    // 判断图片格式  
                    if (!(img.type.indexOf('image') == 0 && img.type && /.(?:jpg|png|gif)$/.test(img.name))) {
                        alert('图片只能是jpg,gif,png');
                        return;
                    }

                    var reader = new FileReader();
                    reader.readAsDataURL(img);

                    reader.onload = function (e) { // reader onload start  
                        // ajax 上传图片  
                        $.post("Handler.ashx", { imgname: img.name, img: e.target.result }, function (ret) {

                            var www = ret;
                            if (ret != '') {
                                alert('upload success');
                                $('#showimg').html('<img src="' + ret + '">');
                            } else {
                                alert('upload fail');
                            }
                        }, 'text'); //这里返回的类型有:json,html,xml,text
                    } // reader onload end  
                }

            }  
        </script>
    </head>
    <body>
        <p class="title">
            使用html5 FileReader获取图片,并异步上传到服务器(not iframe)</p>
        <p>
            <input type="file" class="file" id="img"><%--加入multiple可多选--%><label class="filebtn"
                for="img" title="JPG,GIF,PNG">请选择图片</label></p>
        <p class="showimg" id="showimg">
        </p>
    </body>
    </html>

    服务端代码:

        public void ProcessRequest(HttpContext context)
        {
            if (context.Request["img"] != null)//生成校验码
            {
                string imgname = context.Request["imgname"];
                string imgExtention = System.IO.Path.GetExtension(imgname).ToLower();
                if (imgExtention != ".jpg" && imgExtention != ".jpe" && imgExtention != ".jpeg" && imgExtention != ".gif" && imgExtention != ".png" && imgExtention != ".bmp")
                {
                    string s = "原图片文件格式不正确,支持的格式有[ .jpg|.jpe|.jpeg|.png|.bmp|.gif ]!";
                    
                }
                string imgData = context.Request["img"];
                string[] ss =imgData.Split(',');
                byte[] imageBytes = Convert.FromBase64String(ss[1]);
                //读入MemoryStream对象
                System.IO.MemoryStream memoryStream = new System.IO.MemoryStream(imageBytes, 0, imageBytes.Length);
                memoryStream.Write(imageBytes, 0, imageBytes.Length);
                //转成图片
                System.Drawing.Image image = System.Drawing.Image.FromStream(memoryStream);
                image.Save("硬盘存储地址" + imgname);
                context.Response.Write("Web服务器地址" + imgname);

                context.Response.End();
            }
        }

  • 相关阅读:
    20200722T1 【NOIP2015模拟10.29A组】三色树
    【NOIP2015模拟10.29B组】抓知了
    20200721T2 【NOIP2015模拟10.22】最大子矩阵
    20200721T1 【NOIP2015模拟10.22】矩形
    20200720T4 五子棋
    [JZOJ3809] 设备塔
    注册了!
    Python之元组和集合
    Python中列表详解
    python 字符串
  • 原文地址:https://www.cnblogs.com/cuihongyu3503319/p/5868744.html
Copyright © 2011-2022 走看看