php $_FILES错误说明 以及图片前端图片上传失败。

今天被一个问题弄了好久,

先看代码:

前端:

<form method="post" action="upimage.php" enctype="multipart/form-data">
 <input type="hidden" value="204800" name="MAX_FILE_SIZE"/>
 File: <input type="file" name="file" />
 <input type="submit" value="OK" name="submitbtn" style="width:100px;height:23px"/></center>
</form>

php:(部分)

 $imgfile=$_FILES["file"];
$submitbtn=$_POST['submitbtn'];
var_dump($imgfile);
 if($submitbtn=='OK' and is_array($imgfile)){      // is_array 检测变量是否是数组
 $name=$imgfile['name'];  //取得图片名称
 $type=$imgfile['type']; //取得图片类型
 $size=$imgfile['size'];  //取得图片长度
 $tmpfile=$imgfile['tmp_name'];  //图片上传上来到临时文件的路径
     // is_uploaded_file 判断文件是否是通过 HTTP POST 上传的
 if($tmpfile and is_uploaded_file($tmpfile)){  //判断上传文件是否为空,文件是不是上传的文件


通过运行:

上传小一点图片没有问题,大一点的就不行了,自然而然会想到是文件限制的问题?

由于刚接触不太懂,中间走了不少弯路。

最后通过:

var_dump($imgfile);

添加var_dump();看看打印的是什么


如图,这是打印的结果,可以看见error  的值为2!!!关于

PHP $_FILES错误说明error 0,1,2,3,4,5,6,7

点击可查看:


我们发现是文件超出了大小。

经过网上查找,我只这么搜索的:“其值为 2,上传文件的大小超过了 HTML 表单中 MAX_FILE_SIZE 选项指定的值。

网上出现很多解决方法:好像没有一个符合的,都是讲什么php .ini 配置文件里 的upload_max_filesize 值改大什么的。

我试了,没用,好吧,这样来回折腾,几个小时过去了,最后

我删了

<input type="hidden" value="204800" name="MAX_FILE_SIZE"/>

然后再次上传,然后成功了,


我又比对了文件。




可以发现,这里是文件的大小value 限制了,完全不够,

所以,最根本的原因,就是value 大小太小了。我们的设置大一点,问题解决了。


value  的里面数值单位是字节

这里是重点,所以我们不要在把php.ini 里的配置混为已添加了。




  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
$_FILES是一个PHP超全局变量,用于在上传文件时获取上传的文件信息。$_FILES数组的用法是通过HTML表单中的<input type="file">将文件上传到web服务器,然后通过PHP脚本使用$_FILES数组来处理上传的文件。 关于多文件上传,可以通过在HTML表单中添加多个<input type="file">元素来实现。在PHP脚本中,$_FILES数组会自动处理多个上传文件。在处理多个上传文件时,$_FILES数组中的每个文件都有自己的键名。例如,如果有两个上传文件,其键名分别为file1和file2,则可以使用以下代码访问它们: ``` $file1 = $_FILES["file1"]; $file2 = $_FILES["file2"]; ``` 值得注意的是,$_FILES数组中的每个上传文件都有自己的属性。常见的属性包括:name、type、size、tmp_name和error。其中,name属性表示文件的原始名称,type属性表示文件的MIME类型,size属性表示文件的大小(以字节为单位),tmp_name属性表示文件在web服务器上的临时存储位置,error属性表示上传过程中是否出错。 在PHP脚本中,可以使用move_uploaded_file()函数将上传的文件从临时位置移动到指定的位置。例如,以下代码将上传的文件从临时位置移动到web服务器上的/uploads目录中: ``` $target_dir = "/uploads/"; $target_file = $target_dir . basename($_FILES["file"]["name"]); if (move_uploaded_file($_FILES["file"]["tmp_name"], $target_file)) { echo "文件上传成功"; } else { echo "文件上传失败"; } ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值