【发布时间】:2016-08-08 12:05:27
【问题描述】:
所以我有一个将条款和条件上传到文件夹的功能。我获取文件的扩展名和 MIME 类型并检查它们是否有效。截至最近,我上传的所有文件都以0 返回$_FILES[$key]['size'],而本地磁盘上的文件确实有文件大小。当我使用以下脚本检查 MIME 类型时,它总是返回 inode/x-empty。
$finfo = finfo_open(FILEINFO_MIME_TYPE);
$fileType = finfo_file($finfo, $file['tmp_name']); // Returns 'inode/x-empty'
$expl = explode('.', $file['name']);
$fileExt = end($expl);
我似乎无法弄清楚为什么会发生这种情况,因为几个月前还没有。我以前也从未见过这种情况。
以下是 $_FILES 输出的示例:
Array
(
[name] => audite_marlow_logo.jpg
[type] => image/jpeg
[tmp_name] => /tmp/phpcHbiLN
[error] => 0
[size] => 0
)
服务器的 php.ini 能够处理我上传的任何文件。 post_max_size 设置为疯狂的128M。
我上传的所有文件都返回一个error,其整数值为0。
我真的不知道为什么会发生这种情况。
【问题讨论】:
-
快速提问...如果文件大小大于您的 php.ini
post_max_size值,就会发生这种情况。有可能这是原因吗?如果它只是一个小的 jpeg 文件,则极不可能,但值得询问以确保它不是明显的罪魁祸首。 -
@Abela:我的示例中的文件大小为 76kb。我可以在比这大得多的另一个页面上上传图片。
-
Okie,我认为是这样。可能建议试一试:stackoverflow.com/questions/7959615/filesfilesize-returning-0 出现错误,该页面上的代码应该有助于诊断它。
-
@Abela:我上传的每个文件都返回并且错误代码为 0。
-
您确认
$_FILES['file']['error']没有返回任何结果吗?参考:php.net/manual/en/features.file-upload.errors.php
标签: php file-upload mime-types