【发布时间】:2023-03-22 02:52:01
【问题描述】:
我有一个奇怪的问题,当我尝试上传不同的文件时,其中一些被正确识别,但有些不是,当你检查它们的类型时设置为application/octet-stream$_FILES['file_1']['type']
Debug Objects: png
Debug Objects: image/png
Debug Objects: php
Debug Objects: application/octet-stream
Debug Objects: rar
Debug Objects: application/octet-stream
Debug Objects: psd
Debug Objects: application/octet-stream
我联系了我的托管公司,他们告诉我这不是他们的错误,可能与 CloudFlare 有关,但我以前从未遇到过这样的问题。
我知道 RAR 有 application/octet-stream 作为可能的 mime 类型之一,但不是 PHP 或 PSD。
这些是 PSD 的类型:
application/x-photoshop
image/vnd.adobe.photoshop
这些是针对 PHP 的:
application/x-httpd-php
application/php
application/x-php
text/php
text/x-php
application/x-httpd-php-source
有人知道为什么要这样做吗?我在 IE、FireFox、Chrome 和 Opera 中尝试过。发生在所有这些浏览器中。
有没有更好的检查类型的方法?由于我正在检查的那些是由浏览器发送的,因此可以被欺骗(我也在检查扩展以提高安全性)。我知道有办法用 java 来做,但我想用 PHP 做服务器端。
谢谢。
【问题讨论】:
-
我认为它仅来自 Chorme,您是否尝试过使用 FF 检查 mime 类型。
-
@SudipPal 尝试过 IE、Chrome、FF、Opera。发生在所有人身上。
-
目前还不清楚你在问什么。将什么从哪里上传到谁时,哪些文件被识别为什么?
-
@deceze 列出了一些(不是全部)类型设置为
application/octet-stream而不是 propper 类型的文件。而且您显然也错过了我正在使用浏览器在 PHP 中上传表单...尝试再次阅读。 -
“其中一些被正确识别” – 何时何地被识别?是的,您正在上传文件,但是您究竟从哪里获取该 MIME 类型?
标签: php mime-types