php - 如何使用 SQL Server 存储和检索图像 (Server Management Studio)

标签 php sql sql-server image

我在尝试将文件插入 SQL Server 数据库时遇到困难。我会尽力将其分解:

  1. 我应该使用什么数据类型来存储图像文件(jpeg/png/gif/等)?现在我的表正在使用 image 数据类型,但我很好奇 varbinary 是否是更好的选择。

  2. 我该如何将图像插入数据库? Microsoft SQL Server Management Studio 是否有任何允许将文件插入表中的内置函数?如果是这样,那是怎么做到的?此外,如何通过使用 HTML 表单和 PHP 处理输入数据并将其放入表中来完成这项工作?

  3. 如何从表格中获取图像并将其显示在页面上?我了解如何选择单元格的内容,但我将如何将其转换为图片。我必须要有标题吗(内容类型:图像/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/

相关文章:

php - Bigcommerce 中的订单创建 webhook 仅在使用商店控制面板创建订单时触发

PHP - 寻找 HTML 生成器/管理器

sql - 如何只比较月份和年份,而不是完整的日期?

php - SQL查询PHP网站从Win7到MAMP

SQL Server 根据另一个表替换字符串

SQL触发多次插入更新

sql-server - 具有可用空间的 SQL Server 备份

javascript - 如何在上传到目录之前调整图像大小(使用 url 中的图像)?

mysql - 定义 MYSQL 触发器的语法错误

php - Zend 框架 $_REQUEST 等效项