如何在没有任何File API的情况下在javascript / jquery中读取图像数据/从图像中获取二进制数据

时间:2014-06-15 12:39:09

标签: javascript jquery ajax image binary

我正在使用IE8,因此我无法使用任何File API。我想能够读取图像数据/获取其二进制数据,以便我可以将其传递给我的webservice,从而创建一个图像。

这是我的html和javascript代码:

<input name="file" type="file" />
<input type="submit" value="Submit" id="submitBtn"/>

的javascript:

<script type="text/javascript">
            $(document).ready(function () {
                $("#submitBtn").click(function () {
                    var fileStream = $("#file").val();
                    $.ajax({
                        type: "POST",
                        data: ,
                        dataType: "image/gif",
                        url: "http://localhost/WebServices/Upload.asmx/ByteArrayToImage",
                        contentType: "application/x-www-form-urlencoded",
                        success: function () {
                            alert('yes');
                        },
                        error: function () {
                            alert('bouh');
                        }
                    });
                });
            });
   </script>

我知道上面的代码不起作用,因为$(“#file”)。val()只会给我一个假路径。这就是我需要知道如何获取二进制数据的原因。

我的网络服务代码:

public static System.Drawing.Image ByteArrayToImage(byte[] bArray)
        {
            if (bArray == null)
                return null;

            System.Drawing.Image newImage;

            try
            {
                using (MemoryStream ms = new MemoryStream(bArray, 0, bArray.Length))
                {
                    ms.Write(bArray, 0, bArray.Length);
                    newImage = System.Drawing.Image.FromStream(ms, true);
                }
            }
            catch (Exception ex)
            {
                newImage = null;

                //Log an error here
            }


            return newImage;
        }

请帮助,我一直在寻找天的答案..谢谢!

*注意:我故意删除上面的数据字段空白,因为我不知道如何将图像的二进制数据传递给webservice

0 个答案:

没有答案