【发布时间】:2016-07-31 02:01:24
【问题描述】:
当我尝试上传文件时,我会像这样检查文件大小:
if($_FILES['attachment_file']['size'] > (1024 * 1024 * 20)) // 20 MB
{
echo 'The file is too big !'; exit();
}
在我的 htaccess 文件中,我有:
php_value memory_limit 21M
php_value max_execution_time 300
php_value upload_max_filesize 21M
php_value post_max_size 21M
所以,我使用 php 检查文件是否超过 20 MB,然后停止脚本。但是错误“文件太大!”没有显示...
在 php 错误日志中,我收到错误“允许的内存大小为 22020096 字节已用尽”。
如果我将 (1024 * 1024 * 20) 更改为 (1024 * 1024 * 10),它会按预期工作。 php 捕获错误并向我显示消息:“文件太大!”。
问题出在哪里?为什么不能使用 20 MB?
PS:我检查了phpinfo,看看htaccess的配置是否被占用,没关系。
【问题讨论】:
-
您是在本地还是在服务器上?也许您不允许将 memory_limit 设置为 >20M?
-
是的,我在 localhsot 上,但我已经说过 phpinfo 说来自 htaccess 的配置被采用。所以我被允许....
-
听起来可能比发布的 sn-p 更多。我有两个问题:是什么导致内存不足错误以及您正在测试的文件有多大?另外,它是否适用于非常小的文件?
-
该文件有 16 Mb 并且来自日志的错误是:: PHP 致命错误:C:\wamp\www\require\ADMIN_files 中允许的内存大小为 134217728 字节已用尽(试图分配 66000 字节)第 110 行的 .php PHP 堆栈跟踪:PHP 1. {main}() C:\wamp\www\index.php:0 PHP 2. require_once() C:\wamp\www\index.php:3 PHP 3. require_once() C:\wamp\www\require\REQ_require.php:39 PHP 4.imagecreatefromjpeg() C:\wamp\www\require\ADMIN_files.php:110
-
Oooo... 该文件只有 16Mb.... 那么这意味着 php 条件没问题。那为什么 imagecreatefromjpeg 返回这个错误? memory_limit 是 128 百万...
标签: php .htaccess config memory-limit