我在尝试将文件插入 SQL Server 数据库时遇到困难。我会尽力将其分解:
我应该使用什么数据类型来存储图像文件(jpeg/png/gif/等)?现在我的表正在使用
image
数据类型,但我很好奇varbinary
是否是更好的选择。我该如何将图像插入数据库? Microsoft SQL Server Management Studio 是否有任何允许将文件插入表中的内置函数?如果是这样,那是怎么做到的?此外,如何通过使用 HTML 表单和 PHP 处理输入数据并将其放入表中来完成这项工作?
如何从表格中获取图像并将其显示在页面上?我了解如何选择单元格的内容,但我将如何将其转换为图片。我必须要有标题吗(内容类型:图像/jpeg)?
我用 MySQL 做任何这些事情都没有问题,但 SQL Server 环境对我来说仍然是新的,我正在为我的工作开发一个项目,需要使用存储过程来获取各种数据。
感谢任何帮助。
最佳答案
image
类型已弃用,所以不要使用它。
如果这是 SQL 2008,简短的回答是使用 FILESTREAM
类型,如果是 2005 或更早的版本,则使用 varbinary(max)
。
如果这是 SQL 2008,更好的答案是使用 FILESTREAM
类型,否则根本不将图像存储在数据库中。数据库不是为这种类型的东西而构建的,将 BLOB 放入其中会严重损害性能。 FILESTREAM
通过将实际数据存储在文件系统上来回避这个问题;其他一切都是不合标准的解决方案。
至于如何读取和写入varbinary
列,如果您选择采用这种不理想的方法,它将在 PHP 中表示为流。这就是您作为列值从查询中获得的内容,我相信这就是您必须作为参数输入的内容。
关于php - 如何使用 SQL Server 存储和检索图像 (Server Management Studio),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2427767/