精华内容
下载资源
问答
  • 方法一:文件保存在固定的路径下,数据库中存取文件路径和名称方法二:数据库中用blob类型或者varbinary类型字段存储备注文件方法三:在本地用PowerBuilder的OLE存储结构存储备注文件三种方法的优缺点方法一:文件...
  • 一、图片转换成base64格式的优缺点 1. 优点 (1)base64格式的图片是文本格式,占用内存小,转换后的大小比例大概为1/3,降低了资源服务器的消耗; (2)网页中使用base64格式的图片时,不用再请求服务器调用图片...

    一、图片转换成base64格式的优缺点

    1. 优点

    (1)base64格式的图片是文本格式,占用内存小,转换后的大小比例大概为1/3,降低了资源服务器的消耗;

    (2)网页中使用base64格式的图片时,不用再请求服务器调用图片资源,减少了服务器访问次数。

    2. 缺点

    (1)base64格式的文本内容较多,存储在数据库中增大了数据库服务器的压力;

    (2)网页加载图片虽然不用访问服务器了,但因为base64格式的内容太多,所以加载网页的速度会降低,可能会影响用户的体验。

    (3)base64无法缓存,要缓存只能缓存包含base64的文件,比如js或者css,这比直接缓存图片要差很多,而且一般HTML改动比较频繁,所以等同于得不到缓存效益。

    三、base64图片实际应用

    <img src="data:image/jpeg;base64,/9j/4AAQS……"/>

    因为base64的使用缺点,所以一般图片小于10kb的时候,我们才会选择使用base64图片,比如一些表情图片,太大的图片转换成base64得不偿失。当然,极端情况极端考虑。

            data:,文本数据

            data:text/plain,文本数据

            data:text/html,HTML代码

            data:text/html;base64,base64编码的HTML代码

            data:text/css,CSS代码

            data:text/css;base64,base64编码的CSS代码

            data:text/javascript,Javascript代码

            data:text/javascript;base64,base64编码的Javascript代码

            data:image/gif;base64,base64编码的gif图片数据

            data:image/png;base64,base64编码的png图片数据

            data:image/jpeg;base64,base64编码的jpeg图片数据

            data:image/x-icon;base64,base64编码的icon图片数据


    但是这种方法不兼容IE6/7,使用时要注意!

    展开全文
  • 一、图片转换成base64格式的优缺点1. 优点(1)base64格式的图片是文本格式,占用内存小,转换后的大小比例大概为1/3,降低了资源服务器的消耗;(2)网页中使用base64格式的图片时,不用再请求服务器调用图片资源,...

    fb482bba4bf4e5cc6065a7a347a827d0.png

    一、图片转换成base64格式的优缺点

    1. 优点

    (1)base64格式的图片是文本格式,占用内存小,转换后的大小比例大概为1/3,降低了资源服务器的消耗;

    (2)网页中使用base64格式的图片时,不用再请求服务器调用图片资源,减少了服务器访问次数。

    2. 缺点

    (1)base64格式的文本内容较多,存储在数据库中增大了数据库服务器的压力;

    (2)网页加载图片虽然不用访问服务器了,但因为base64格式的内容太多,所以加载网页的速度会降低,可能会影响用户的体验。

    (3)base64无法缓存,要缓存只能缓存包含base64的文件,比如js或者css,这比直接缓存图片要差很多,而且一般HTML改动比较频繁,所以等同于得不到缓存效益。

    二、PHP将图片转base64格式函数

    	/**
    	* 图片转base64
    	* @param ImageFile String 图片路径
    	* @return 转为base64的图片
    	*/
        function Base64EncodeImage($ImageFile) {
            if(file_exists($ImageFile) || is_file($ImageFile)){
                $base64_image = '';
                $image_info = getimagesize($ImageFile);
                $image_data = fread(fopen($ImageFile, 'r'), filesize($ImageFile));
                $base64_image = 'data:' . $image_info['mime'] . ';base64,' . chunk_split(base64_encode($image_data));
                return $base64_image;
            }
            else{
                return false;
            }
        }

    三、base64图片实际应用

    <img src="data:image/jpeg;base64,/9j/4AAQS……"/>

    因为base64的使用缺点,所以一般图片小于10kb的时候,我们才会选择使用base64图片,比如一些表情图片,太大的图片转换成base64得不偿失。当然,极端情况极端考虑。

    展开全文
  • 一、图片转换成base64格式的优缺点1. 优点(1)base64格式的图片是文本格式,占用内存小,转换后的大小比例大概为1/3,降低了资源服务器的消耗;(2)网页中使用base64格式的图片时,不用再请求服务器调用图片资源,...

    29afa2b240de5eb3f36ce89a68ec64a1.png

    一、图片转换成base64格式的优缺点

    1. 优点

    (1)base64格式的图片是文本格式,占用内存小,转换后的大小比例大概为1/3,降低了资源服务器的消耗;

    (2)网页中使用base64格式的图片时,不用再请求服务器调用图片资源,减少了服务器访问次数。

    2. 缺点

    (1)base64格式的文本内容较多,存储在数据库中增大了数据库服务器的压力;

    (2)网页加载图片虽然不用访问服务器了,但因为base64格式的内容太多,所以加载网页的速度会降低,可能会影响用户的体验。

    (3)base64无法缓存,要缓存只能缓存包含base64的文件,比如js或者css,这比直接缓存图片要差很多,而且一般HTML改动比较频繁,所以等同于得不到缓存效益。

    二、PHP将图片转base64格式函数

    	/**
    	* 图片转base64
    	* @param ImageFile String 图片路径
    	* @return 转为base64的图片
    	*/
        function Base64EncodeImage($ImageFile) {
            if(file_exists($ImageFile) || is_file($ImageFile)){
                $base64_image = '';
                $image_info = getimagesize($ImageFile);
                $image_data = fread(fopen($ImageFile, 'r'), filesize($ImageFile));
                $base64_image = 'data:' . $image_info['mime'] . ';base64,' . chunk_split(base64_encode($image_data));
                return $base64_image;
            }
            else{
                return false;
            }
        }

    三、base64图片实际应用

    <img src="data:image/jpeg;base64,/9j/4AAQS……"/>

    因为base64的使用缺点,所以一般图片小于10kb的时候,我们才会选择使用base64图片,比如一些表情图片,太大的图片转换成base64得不偿失。当然,极端情况极端考虑。

    展开全文
  • Android数据库中存取图片通常使用两种方式,一种是保存图片所在路径,二是将图片以二进制形式存储(sqlite3支持BLOB数据类型)。对于两种方法使用,好像第二种方法不如第一种方法更受程序员欢迎,他们认为,在很...
  • 处理数据库的图片

    2010-10-18 20:38:00
     首先,通常用两种方法来向数据库存放图片,一是把图片的二进制信息存入数据库,二是在数据库中存放保存图片的路劲。 两种方法各有优缺点。需要掌握的要点: 1.编写存储过程。 CREATE ALTER PROCEDURE Pr_A

         技术要点:ASP.NET2.0实现添加图片到数据库中和从数据库中读取图片并显示图片等功能。
      
         首先,通常用两种方法来向数据库存放图片,一是把图片的二进制信息存入数据库,二是在数据库中存放保存图片的路劲。 两种方法各有优缺点。

    需要掌握的要点:
        
         1.编写存储过程。
               CREATE ALTER PROCEDURE Pr_AddPicture
               (
                  @PictureDesn varchar(200),       /*定义图片说明参数*/
                  @PictureType varchar(100),       /*定义图片类型参数*/
                  @PictureData imag                /*定义图片数据参数*/

               )
               AS
               INSERT INTO Picture (PictureDesn,PictureType,PictureData) VALUES(@PictureDesn,@PictureType,@PictureData)
               RETURN @@Identity    /*返回最后一次插入的主键值。*/)

               ALTER PROCEDURE Pr_GetSinglePicture

               ( @PictureID int)
               AS
               SELECT * FROM Picture WHERE
    PictureID=@PictureID

          2.建立数据访问层类  PictureDB

           public class PictureDB
    {

        private readonly string ConnectionString;
        //用该方法来获取web.config里面的 ConnectionString.
        public PictureDB() { ConnectionString = ConfigurationManager.ConnectionStrings["ConnectionString"].ToString(); } 
       
        public int AddPicture(String sPictureDesn, byte[] bPictureData, String sPictureType)
        {
            SqlConnection conn = new SqlConnection(ConnectionString);
           
            SqlCommand myCommand = new SqlCommand("Pr_AddPicture", conn);
            myCommand.CommandType = CommandType.StoredProcedure;
           
            SqlParameter parameterPictureDesn = new SqlParameter("@PictureDesn", SqlDbType.VarChar, 50);
            parameterPictureDesn.Value = sPictureDesn;
            myCommand.Parameters.Add(parameterPictureDesn);

            SqlParameter parameterPictureData = new SqlParameter("@PictureData", SqlDbType.Image);
            parameterPictureData.Value = bPictureData;
            myCommand.Parameters.Add(parameterPictureData);

            SqlParameter parameterPictureType = new SqlParameter("@PictureType", SqlDbType.VarChar, 50);
            parameterPictureType.Value = sPictureType;
            myCommand.Parameters.Add(parameterPictureType);

            SqlParameter parameterPictureID= new SqlParameter("@PictureID", SqlDbType.Int,4);
            parameterPictureID.Direction = ParameterDirection.ReturnValue;
            myCommand.Parameters.Add(parameterPictureID);

            try
            {
                conn.Open();
            }
            catch (System.Exception ex)
            {
                throw new Exception(ex.Message, ex);
            }
            try
            {
                myCommand.ExecuteNonQuery();
            }
            catch (System.Exception ex)
            {
                throw new Exception(ex.Message, ex);
            }
            finally{
                if (conn.State==ConnectionState.Open){
                    conn.Close();
                }
            }
            return (int)parameterPictureID.Value;
        }

        public SqlDataReader GetSinglePicture(int nPictureID)
        {
            SqlConnection conn = new SqlConnection(ConnectionString);
            SqlCommand myCommand = new SqlCommand("Pr_GetSinglePicture", conn);
            myCommand.CommandType = CommandType.StoredProcedure;

            SqlParameter parameterPictureID = new SqlParameter("@PictureID", SqlDbType.Int, 4);
            parameterPictureID.Value = nPictureID;
            myCommand.Parameters.Add(parameterPictureID);
            SqlDataReader dr = null;
            try
            {
                conn.Open();
            }
            catch (System.Exception ex)
            {
                throw new Exception(ex.Message, ex);
            }
            try
            {
                dr = myCommand.ExecuteReader(CommandBehavior.CloseConnection);
            }
            catch (System.Exception ex)
            {
                throw new Exception(ex.Message, ex);
            }
            return dr;
        }
     
    }

           从这里可以总结出 怎样 在ASP.net中执行存储过程并实行参数传递.牢记。

           3.第三个重点就是怎样将图片转换成二进制并保存在数据库里。
     
                PictureDB picture = new PictureDB();
                Stream pictureStream = upfile.PostedFile.InputStream;     //该对象指向一个上载文件,以准备读取该文件的内容
                byte[] pictureData = new byte[upfile.PostedFile.ContentLength];    //ContentLength以字节为单位,获取上载文件大小。
                try
                {
                    pictureStream.Read(pictureData, 0, upfile.PostedFile.ContentLength);  // 开始读取文件。
                    pictureID = picture.AddPicture(FileName.Text.Trim(), pictureData, upfile.PostedFile.ContentType);
                    sucessMessage.Text = "上传文件成功";
                   
                }
       
            4.第四部就涉及到怎样将图片输出了,需要将数据库里的二进制数据读取出来并以图像的方式显示出来。这里我们用到了一个image控件,
              讲该控件的ImageUrl属性指定为一个aspx页面,并在这个页面的pageload事件里写读取图像数据并显示。该事件代码:
      
             protected void Page_Load(object sender, EventArgs e)
            {
                if (Request.QueryString["PictureID"] != null)   //这里用到了页面传值。ImageUrl就该写成 ~/showpicture.aspx?PictureID=
                {
                    PictureDB picture = new PictureDB();
                    SqlDataReader recp = picture.GetSinglePicture(Int32.Parse(Request.QueryString["PictureID"].ToString()));
                    byte[] PictureData = null;
                    recp.Read();
                   
                    PictureData = (byte[])recp["PictureData"];
                    Response.ContentType = recp["PictureType"].ToString();   //控制输出文件类型
                   
                    recp.Close();
                    this.EnableViewState = false;        //在提交服务器后是否保存页面状态。

                    Response.AppendHeader("Content-Length", PictureData.Length.ToString());    //向HTTP流中写入Content-Length
                    Response.BinaryWrite(PictureData);     //像是图片的二进制数据。
                    Response.End();
                }
              


    到这就基本完成了!

     

    展开全文
  • 一、图片转换成base64格式的优缺点1. 优点(1)base64格式的图片是文本格式,占用内存小,转换后的大小比例大概为1/3,降低了资源服务器的消耗;(2)网页中使用base64格式的图片时,不用再请求服务器调用图片资源,...
  • (1)base64格式文本内容较多,存储数据库中增大了数据库服务器压力; (2)网页加载图片虽然不用访问服务器了,但因为base64格式内容太多,所以加载网页速度会降低,可能会影响用户体验。 (3)base64...
  • 有哪些优缺点?三个范式是什么什么是视图?以及视图使用场景有哪些?drop、delete与truncate分别在什么场景之下使用?功能快捷键合理创建标题,有助于目录生成如何改变文本样式插入链接与图片如何插入一段...
  • Redis和Memcache区别,优缺点对比

    千次阅读 2019-06-13 11:14:52
    1、 Redis和Memcache都是将数据存放在内存中,都是内存数据库。...2、Redis不仅仅支持简单k/v类型数据,同时还提供list,set,hash等数据结构的存储。 3、虚拟内存–Redis当物理内存用完时...
  • redis和memcache区别, 优缺点对比

    千次阅读 2019-08-29 08:51:50
    2、Redis不仅仅支持简单k/v类型数据,同时还提供list,set,hash等数据结构的存储。 3、虚拟内存–Redis当物理内存用完时,可以将一些很久没用到value 交换到磁盘 4、过期策略–memcache在set时就指定,例如...
  • 1、 Redis和Memcache都是将数据存放在内存中,都是内存数据库。不过memcache还可用于缓存...2、Redis不仅仅支持简单k/v类型数据,同时还提供list,set,hash等数据结构的存储。3、虚拟内存–Redis当物理内存...
  • 2、Redis不仅仅支持简单k/v类型数据,同时还提供list,set,hash等数据结构的存储。3、虚拟内存–Redis当物理内存用完时,可以将一些很久没用到value 交换到磁盘4、过期策略–memcache在set时就指定,例如set ...
  • mysql数据库笔记

    千次阅读 2018-10-29 12:49:00
    Python数据库 ...数据库:按照一定数据格式、结构存储数据仓库 2、 为什么使用数据库存数据? 内存: 优点:存取速度快 缺点: 1、 容量小 2、 断电后,数据不会保存 文件: ...
  • 数据库——第一天

    2020-04-21 18:01:12
    3.mysql中数据类型 3.1整数类型 3.2浮点类型 3.3字符串类型 3.4日期时间类型 3.5二进制类型 ...4.2存储引擎优缺点及选择 innoDB支持事务处理也支持外界 支持崩溃修复能力和并发控制 如对事务...
  • ORC VS Parquet关于列式数据库的一些说明列式存储格式的适用场景行列存储的优缺点ORC VS Parquet二者的文件结构图选择哪一种列式存储较好欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成...
  • 一、图片转换成base64格式的优缺点1. 优点(1)base64格式的图片是文本格式,占用内存小,转换后的大小比例大概为1/3,降低了资源服务器的消耗;(2)网页中使用base64格式的图片时,不用再请求服务器调用图片资源,减少...
  • php与base64图片

    2020-01-13 19:28:23
    1、优缺点 1. 优点 (1)base64格式的图片是文本格式,占用内存小,转换后大小比例大概为1/3,降低了资源服务器消耗; (2)网页中使用base64格式的图片时,不用再请求服务器调用图片资源,减少了服务器访问...

空空如也

空空如也

1 2 3
收藏数 47
精华内容 18
关键字:

数据库存储图片的优缺点