当前位置:编程学习 > C#/ASP.NET >>

mssql存图片

最近在公司的管理系统的基础上做个web服务,给分公司查看数据。突然发现图片不会取了!
后来查看了下那系统的数据库,发现原来是以text的类型存的图片。
小弟就哑巴了,查看了相关资料好像是以ASCII码有关!
在这里想请教下,我该如何通过取值转换成图片呢??? --------------------编程问答-------------------- text是以什么形式存储的,二进制?? --------------------编程问答--------------------
不知道是二进制还是路径,按常理来说该存路径。 --------------------编程问答--------------------
引用 1 楼 Chinajiyong 的回复:
text是以什么形式存储的,二进制??
电话去询问了下,他们存的就是图片。那种形式就像你把一张图片直接拉进记事本那样 --------------------编程问答--------------------
引用 2 楼 fengyarongaa 的回复:
不知道是二进制还是路径,按常理来说该存路径。
如果是路径或二进制,也不用蛋定这么久
--------------------编程问答-------------------- 应该是Base64吧
        /// <summary> 
        /// 把 Base64 转图片
        /// </summary> 
        /// <param name="base64String"></param> 
        public MemoryStream Base64ToImage(string base64String)
        {


            // base64String.Substring(0, base64String.Length / 40 * 40) 主要是 Base64 編碼長度有規定必須是 0 或 4 的整數倍,所以為免出錯,把長度處理一下 


            byte[] imageBytes = Convert.FromBase64String(base64String);


            // byte[] imageBytes = Convert.FromBase64String(base64String.Substring(0,128)); 
            MemoryStream _ms = new MemoryStream(imageBytes, 0, imageBytes.Length);

            // Convert byte[] to Image 
            _ms.Write(imageBytes, 0, imageBytes.Length);
            /*
            System.Drawing.Image image = System.Drawing.Image.FromStream(ms, true);

            image.Save(Server.MapPath("Report"), ImageFormat.Png);
            */
            return _ms;
        }

        // 把图片转 Base64 编码
        public string ImageToBase64(System.Drawing.Image image, System.Drawing.Imaging.ImageFormat format)
        {
            using (MemoryStream ms = new MemoryStream())
            {
                // Convert Image to byte[] 
                image.Save(ms, format);
                byte[] imageBytes = ms.ToArray();

                // Convert byte[] to Base64 String 
                string base64String = Convert.ToBase64String(imageBytes);
                return base64String;
            }
        } --------------------编程问答--------------------
引用 5 楼 liuchaolin 的回复:
应该是Base64吧
        /// <summary> 
        /// 把 Base64 转图片
        /// </summary> 
        /// <param name="base64String"></param> 
        public MemoryStream Base64ToImage(string base64String)
        {


            // base64String.Substring(0, base64String.Length / 40 * 40) 主要是 Base64 編碼長度有規定必須是 0 或 4 的整數倍,所以為免出錯,把長度處理一下 


            byte[] imageBytes = Convert.FromBase64String(base64String);


            // byte[] imageBytes = Convert.FromBase64String(base64String.Substring(0,128)); 
            MemoryStream _ms = new MemoryStream(imageBytes, 0, imageBytes.Length);

            // Convert byte[] to Image 
            _ms.Write(imageBytes, 0, imageBytes.Length);
            /*
            System.Drawing.Image image = System.Drawing.Image.FromStream(ms, true);

            image.Save(Server.MapPath("Report"), ImageFormat.Png);
            */
            return _ms;
        }

        // 把图片转 Base64 编码
        public string ImageToBase64(System.Drawing.Image image, System.Drawing.Imaging.ImageFormat format)
        {
            using (MemoryStream ms = new MemoryStream())
            {
                // Convert Image to byte[] 
                image.Save(ms, format);
                byte[] imageBytes = ms.ToArray();

                // Convert byte[] to Base64 String 
                string base64String = Convert.ToBase64String(imageBytes);
                return base64String;
            }
        }
这方法,之前试过,但是在转换为byte[]时报无效字符异常 --------------------编程问答-------------------- http://blog.csdn.net/sandy945/article/details/7092230

参考
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,