尝试将文件插入SQL Server数据库时遇到困难。我会试着尽可能地打破这个:
我应该使用哪种数据类型来存储图像文件(jpeg / png / gif / etc)?现在我的表格使用image
数据类型,但我很好奇varbinary
是否是更好的选择。
如何将图像插入数据库? Microsoft SQL Server Management Studio是否具有允许将文件插入表中的任何内置函数?如果是这样,那怎么办?另外,如何通过使用PHP表单来处理输入数据并将其放入表格中来实现这一目标呢?
如何从表中获取图像并将其显示在页面上?我理解如何选择单元格的内容,但我将如何将其转换为图片。我是否必须有标题(内容类型:image / jpeg)?
使用MySQL做这些事情我没有问题,但SQL Server环境对我来说仍然是新的,我正在为我的工作开发一个项目,需要使用存储过程来获取各种数据。
感谢任何和所有帮助。
答案 0 :(得分:5)
不推荐使用image
类型,因此请勿使用该类型。
简短的回答是,如果这是SQL 2008,则使用FILESTREAM
类型;如果是2005或更早版本,则使用varbinary(max)
。
更好的答案是使用FILESTREAM
类型(如果这是SQL 2008),而不是将数据存储在数据库中。数据库不是为这种类型的东西构建的,并且在那里抛出BLOB会严重损害性能。 FILESTREAM
通过将实际数据存储在文件系统中来回避问题;其他一切都是不合标准的解决方案。
至于如果选择采用这种非理想的方法,如何读取和写入varbinary
列,它将被表示为PHP中的流。这就是你从查询中得到的列值,我相信你必须把它作为一个参数。
答案 1 :(得分:0)