php 接收文件 错误代码3,php上传文件错误代码3

上传更大的文件(> 10KB)将在$_FILES [‘file’] [‘error’]中获得错误代码3(UPLOAD_ERR_PARTIAL),并且小文件(< 10KB)将成功上传.

如果文件超过限制php post_max_size或upload_max_filesize,则应该获得错误代码1 UPLOAD_ERR_INI_SIZE.但是,获取错误代码3 UPLOAD_ERR_PARTIAL是不正确的.

我想apache设置有问题,并且不知道如何解决这个问题.

使用以下软件及其版本

> php 5.6.17

> apache 2.4.18

以下是php.ini:

post_max_size = 8M

file_uploads = On

upload_tmp_dir = "/tmp"

upload_max_filesize = 2M

当上传较大的文件(hi.png)时,错误记录在/var/log/httpd-error.log中

PHP Notice: Missing mime boundary at the end of the data for file hi.png in Unknown on line 0

这是index.php

Select image to upload:

和upload.php

if($_FILES['fileToUpload']['error'] > 0){

echo "error code".$_FILES['fileToUpload']['error']."
";

}

else{

echo "file name:".$_FILES['fileToUpload']['name']."
";

echo "file type:".$_FILES['fileToUpload']['type']."
";

echo "file size:".$_FILES['fileToUpload']['size']."
";

echo "file path:".$_FILES['fileToUpload']['tmp_name']."
";

move_uploaded_file($_FILES['fileToUpload']['tmp_name'],"uploads/".$_FILES['fileToUpload']['name']);

}

?>

解决方法:

我在使用php 5.6.18和apache 2.4.18的FreeBSD 10.1 jail中遇到了同样的问题:无论设置了哪个限制,7950字节以上的文件都会不断地一直失败并出现错误3.

多年后我终于解决了这个问题:PHP模块(mod_php56)是用apache2filter SAPI编译的,但是通过AddHandler作为处理程序启用.解决方案是检查端口选项并使用标​​准选项重建mod_php56(不使用AP2FILTER).

长话:检查您是否有端口选项OPTIONS_FILE_SET = AP2FILTER(Apache 2 Filter SAPI),但PHP配置了常规方式作为处理程序(AddType application / x-httpd-php .php).删除选项(作为默认的构建/端口),并重建mod_php56包解决了我的问题.

要验证这是否也是您的情况,您可以回显php_sapi_name().如果是apache2filter但是通过AddHandler指令启用了php,则会遇到同样的问题.重建后,你的php_sapi_name()应该是apache2handler.这两个选项也可以在phpinfo()中分别作为“Apache 2.0 Filter”和“Apache 2.0 Handler”进行检查.

请注意,这并不能解释为什么它实际上破坏了上传(或者为什么模块首先使用Handler配置).

你也可以通过启用mod_php作为过滤器而不是处理程序来成功,但我没有在这里检查.

标签:apache,php,file-upload,freebsd

来源: https://codeday.me/bug/20190611/1220619.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值