小妹踏足delphi不深,目前在对一个程序做维护,以前程序中保存图片是直接将多张图片保存至sql数据库中的(数据流),但是使用下来发现图片数据量大,而且有重复图片,所以目前在对该部分做修改。我的思路是:本地电脑确定一个固定的存储图片路径,当程序中控件载入图片时记录图片路径(不一定在固定路径下),当点击保存的时候,先判断固定路径下是否有这个文件名的图片,如果有,这数据库中直接就保存图片记录的路径,如果没有,则先将图片复制至固定路径,再数据库中保存路径。本思路有点问题,自己也觉得有点别扭,望各位高人请教,或者给我个思路,或者有代码最好,嘻嘻还有就是程序中又该如何读取显示那?

解决方案 »

  1.   

    如果像职员档案的照片信息,照片一般为2寸,不大。职员数据也不是很大,建议还是第一种存在数据库中好如果将照片放在本地,可采用相对路径,比如在程序目录下放置jpg文件夹,保存到数据库时只保存图像的名称
    名称建议规划好,比如jpg+数字,如jpg1001,jpg1002,保存到数据库只保存1001,1002和图片后缀 即可
    取时对应到jpg目录下找 'jpg'+1001+'.jpg'后缀即可。
      

  2.   

    只能通过文件内容进行过滤么,你的文件名从那里来?是否可以根据文件名过滤重复的。
    判断文件是否存在这个倒是没有什么问题fileexists就可以了
      

  3.   

    你可以在MSSQL数据库的字段设为:image
    再在程序中以"内存流方式"写入
    以"内存流方式"读取即可>>>>>>>>>>>
      

  4.   

    数据库设计就是如babydog01说的一样  
    但是表1中不直接保存二进制数据流    
      

  5.   

    目前使用的就是你们说的这个方法。数据库中字段类型就是image的,保存的数据流
    但是我们又使用视频,而视频使用的多,一个视频已经控制了大小,不允许超过10M了,但是视频实在多,所以在考虑其他办法,将图片和视频保存在本地,数据库中保存路径
      

  6.   

    如果不想将文件放在数据库中,可以在服务器上建一个FTP,将文件上传至FTP,这样所各客户端都可上传和下载。而且数据库中的路径也好指定。当然要记好文件格式,下载打开时,用来判断文件格式,用指定控件打开或播放。
    这种应用在广播和电视播出软件中都有。
      

  7.   

    数据库存相关图片的路径与图片所对的Hash值,以Hash来判断图片是否存在,图片可以转换成Png格式的存储,服务器上存储图片与图片的Hash值,读取的时候先读Hash值,然后来本地判断是否有相关图片存在,如果有,则取本地的,否则,取服务器图片并存储在本地,以便下次查询时使用!
      

  8.   

    FTP的上传下载,参考一下这个吧
    http://blog.gzza.com/article.asp?id=43播放器windowsmediaplayer参考一下这个,支持网络播放的,从数据库提取您的FTP文件地址即可。http://hi.baidu.com/delphix/blog/item/de5f181fd477590f304e15b2.html/cmtid/e59f557e14555d360dd7da15
      

  9.   

    你可以把圖片放在一個ftp下,然後用http或ftp方式進行讀取就可以了note:在sql中存儲圖片的路徑就可以了讀取時,直接按照上面的方法去讀取相應路徑下的圖片即可。。
      

  10.   


    FTP的上传下载 ,服务端应该怎么设置
      

  11.   

    服务器端安装FTP服务器即可!
    请参阅:
    http://soft.yesky.com/tools/421/2293421_5.shtml
    http://www.youku.com/playlist_show/id_4764831.html