由于大小无法上传文件

Posted

技术标签:

【中文标题】由于大小无法上传文件【英文标题】:cannot upload file because of size 【发布时间】:2016-03-22 19:44:56 【问题描述】:

我正在尝试使用 php 上传文件!我尝试上传 PNG、JPG、PDF、TXT 文件,这些上传仅在文件大小约为 20kb 时有效。 当我尝试上传大小约为 150KB 的文件时,它会打印 $_FILE error = 3 并且文件名可以说是“1234.png”,其中 tmp_name 为空,图像本身也是如此!这是我的代码

ini_set('display_errors',1);
error_reporting(-1);

$imageTmp = addslashes($_FILES['image']['tmp_name']);
//$imageTmp = $_FILES['image']['tmp_name'];
$imageOldName = addslashes($_FILES['image']['name']);
$imageData = file_get_contents($imageTmp);
//$imageData = base64_encode($imageTmp);

echo 'image temp name: '. $imageTmp .' ';
echo 'error: '. $_FILES['image']['error']. ' ';
echo 'image name: '. $imageOldName. ' ';
echo 'image data: '. $imageData. ' ';
echo 'image type:'. $_FILES['image']['type'];
echo "<pre>";
echo "POST:";
print_r($_POST);
echo "FILES:";
print_r($_FILES);
echo "</pre>";


$inipath = php_ini_loaded_file();

if ($inipath) 
echo 'Loaded php.ini: ' . $inipath;
 else 
echo 'A php.ini file is not loaded';

我尝试了多种解决方案,例如更改 post_max_size = 200Mupload_max_filesize = 200M 的值而不是 32M

这是尝试上传 txt 文件 4KB 的结果:

image temp name: /Applications/MAMP/tmp/php/phpOc7d6a error: 0 
image Name: test.txt image data: hello image type:text/plain
POST:Array
(
[submit] => Record Test
)
FILES:Array
(
[image] => Array
    (
        [name] => test.txt
        [type] => text/plain
        [tmp_name] => /Applications/MAMP/tmp/php/phpOc7d6a
        [error] => 0
        [size] => 405
    )

  )  
  Loaded php.ini: /Applications/MAMP/bin/php/php5.6.10/conf/php.ini

上传PNG文件127KB的结果:

警告:file_get_contents():第 10 行的 path/test1.php 中的文件名不能为空 图像临时名称:错误:3 图像名称:IMG_8807.JPG 图像数据:图像类型:

POST:Array
(
)
FILES:Array
(
[image] => Array
    (
        [name] => IMG_8807.JPG
        [type] => 
        [tmp_name] => 
        [error] => 3
        [size] => 0
    )

)
Loaded php.ini: /Applications/MAMP/bin/php/php5.6.10/conf/php.ini

顺便说一句,上传失败后,服务器崩溃并显示 502 网关,我必须重新启动 Apache!

【问题讨论】:

您的 php.ini 中最大上传文件大小的设置是什么?您确定您更改了正确的 php.ini 吗?进行更改后是否重新启动了 Apache? 当您调用phpinfo() 时,您是否将upload_max_filesize 的值设为200M @ASK 是的,上传的最大大小和帖子的最大大小都是 200 @JayBlanchard upload_max_filesize = 200M,我回应 inipath 的原因是为了确保我正在编辑正确的,是的,之后重新启动了 apache 【参考方案1】:

正如 php 文档所说:

UPLOAD_ERR_PARTIAL is given when the mime boundary is not found after the file data. 
A possibly cause for this is that the upload was cancelled by the user (pressed ESC, etc).

也许:

权限错误

服务器可用空间不足。

ios 上传。

由于浏览器限制,上传文件夹时可能会出现此错误。在 Mac OS X 上发生。

这些是您可以尝试的一些事情。希望这会有所帮助。

【讨论】:

我使用的是 Mac OS!我会在windows机器上试试 尝试重新安装服务器。

以上是关于由于大小无法上传文件的主要内容,如果未能解决你的问题,请参考以下文章

nginx+tomcat使用apache的FtpClient上传图片时由于多线程问题导致的文件大小为0的问题

我无法上传大小为 24000 kb 的 sql 文件

我无法上传大于 8 mb 的文件 [重复]

无法增加本地 WordPress 中的最大上传文件大小

10.15.7网页无法上传Excel文件

[转]客户端js判断文件类型和文件大小即限制上传大小