客户端代码是网上找的,修改为.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;
            width: 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();
        }
    }

html5使用FileReader上传图片的更多相关文章

  1. 网站开发进阶(三十二)HTML5之FileReader的使用

    HTML5之FileReader的使用 HTML5定义了FileReader作为文件API的重要成员用于读取文件,根据W3C的定义,FileReader接口提供了读取文件的方法和包含读取结果的事件模型 ...

  2. HTML5 之 FileReader 方法上传并读取文件

    原文地址:https://caochangkui.github.io/file-upload/ HTML5 的 FileReader 对象允许Web应用程序异步读取存储在用户计算机上的文件(或原始数据 ...

  3. HTML5之FileReader的使用

    HTML5定义了FileReader作为文件API的重要成员用于读取文件,根据W3C的定义,FileReader接口提供了读取文件的方法和包含读取结果的事件模型. FileReader的使用方式非常简 ...

  4. HTML5 通过 FileReader 实现文件上传

    概述 在页面中上传时,之前一般都是需要使用form表单进行上传.html5 中提供了FileReader 可以将文件转换成Base64编码字符串,因此就可以直接使用 AJAX实现文件上传. 实现代码 ...

  5. [转] HTML5之FileReader的使用

    HTML5定义了FileReader作为文件API的重要成员用于读取文件,根据W3C的定义,FileReader接口提供了读取文件的方法和包含读取结果的事件模型. FileReader的使用方式非常简 ...

  6. HTML5 本地裁剪上传图片

    很多情况下用户上传的图片都需要经过裁剪,比如头像啊什么的.但以前实现这类需求都很复杂,往往需要先把图片上传到服务器,然后返回给用户,让用户确定裁剪坐标,发送给服务器,服务器裁剪完再返回给用户,来回需要 ...

  7. HTML5之FileReader的使用.RP

    HTML5定义了FileReader作为文件API的重要成员用于读取文件,根据W3C的定义,FileReader接口提供了读取文件的方法和包含读取结果的事件模型. FileReader的使用方式非常简 ...

  8. HTML5 之 FileReader 的使用 (网页上图片拖拽并且预显示可在这里学到) [转载]

    转载至 : http://www.360doc.com/content/14/0214/18/1457948_352511416.shtml FileReader 资料(英文) : https://d ...

  9. FileReader上传图片

    实现拖拽图片,在上传至服务器前,显示图片并操控大小 利用HTML5 dragenter dragover dragleave drop 在实现图片显示方面,用了FileReader这个类 var fi ...

随机推荐

  1. java读取properties配置文件方法(一)

    为了修改项目参数方便,需要使用properties配置文件: 首先是需要三个jar包(不同的jar包,读取配置文件的方式会有所不同,这里使用的是2.6版本的jar包) commons configur ...

  2. <T>的用法

    ///类型转换 template <class T1,class T2> vector<T2> ObjcetsSwap(vector<T1> objects) { ...

  3. [VBS]带参数删除扩展名不是*.h、*.c、*.cpp的全部文件

    脚本使用例程CleanFolder遍历一个文件夹 1)使用CleanFolder递归遍历该文件夹下的所有子文件夹 2)如果该子文件夹的大小为0,则删除这个文件夹 3)遍历该文件夹下的所有文件,扩展名不 ...

  4. StringGrid 实例1:初始化StirngGrid的首行和首列

    实例1:初始化StirngGrid的首行和首列

  5. Event --mysql的scheduler.md

    事件调度器event 相当于oracle scheduler CREATE [DEFINER = { user | CURRENT_USER }] EVENT [IF NOT EXISTS] even ...

  6. 超链接的#和javascript:void(0)的区别

    转载于:http://www.uw3c.com/cssviews/css12.html   在工作中,如果我们想把a标签中的链接置成空链接,我们一般会用两种方法: 1 <a href=" ...

  7. SQL中Group By 的使用

    1.概述 “Group By”从字面意义上理解就是根据“By”指定的规则对数据进行分组,所谓的分组就是将一个“数据集”划分成若干个“小区域”,然后针对若干个“小区域”进行数据处理. 2.原始表 3.简 ...

  8. java基础-反射之Class.forName

    Class.forName 查阅javaAPI public static Class<?> forName(String className) throws ClassNotFoundE ...

  9. nginx实现访问网站或目录密码认证保护

    添加目录登陆认证 location / { auth_basic "提示"; auth_basic_user_file /usr/conf/htpasswd; } auth_bas ...

  10. windows小技巧 从文件夹直接打开命令行位置

    windows下从命令行打开某个目录下的东东时,会一直cd  ~~~~,更简单的是: 直接用鼠标找到该文件夹或者文件,按住Shift键然后点击鼠标右键,选择"在此处打开命令行"即可 ...