php中图像文件的类型为,php-确定字符串的文件类型

PHP附带了多种方法来识别文件类型,但是当所讨论的文件仅以二进制字符串表示形式而不是磁盘上的实际文件形式存在时,是否可以识别数据类型?

这样做的原因是,我正在CMS上进行一些维护工作,以前的开发人员由于有点笨拙,决定将图像数据作为数据库BLOB存储到系统中.我当前的项目是将BLOB转储到文件中,并将文件路径保存到数据库中以代替BLOB.

就像我说的那样,我的前任有点笨拙,他不仅将所有这些数据存储为BLOB,而且还没有将数据的数据类型保存在任何地方.

我为该项目的一部分编写的迁移实用程序将文件扩展名保存到光盘中,不使用扩展名,尝试使用exif_imagetype()确定文件的类型,如果设法识别文件类型,则使用正确的扩展名重命名文件.

但是,使用图像数据的类也需要更新,因此它们可以继续使用磁盘上的路径和文件而不是BLOB起作用.

创建和更新图像的方法需要二进制字符串(将BLOB存入数据库),在理想情况下,我宁愿重写这些方法以使用is_uploaded_file,move_uploaded_file等.但是,在直接操作类中没有证据表明$_FILES数组,因此文件数据显然来自类外部,但是考虑到代码的复杂程度(并且没有任何帮助的注释),我找不到它.

作为权宜之计,直到最终找到实际的文件上传管理代码为止,我计划像目前所做的那样在类中将文件数据作为字符串处理,但将字符串保存到文件中而不是保存到数据库中.这应该最大程度地减少对依赖此类的代码库其他部分的影响.

我可以执行迁移脚本的工作,然后在保存并标识文件后重命名该文件,但这在存在文件的情况下可能会出现问题.在将数据提交到磁盘之前,我宁愿知道数据类型是什么.

解决方法:

finfo_buffer()是您想要的.您可以将其传递给您的字符串,它将告诉您基于mime.magic文件的文件类型.

标签:blob,mysql,php

来源: https://codeday.me/bug/20191202/2086154.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值