资讯专栏INFORMATION COLUMN

PHP上传文件

KavenFan / 1664人阅读

$_FILES何时为空数组?

表单提交 enctype 不等于 multipart/form-data 的时候

php.ini配置文件中,file_uploads = Off

上传的文件大小 > php.ini配置文件中所配置的最大上传大小时

只要出现 $_FILES空数组,就可能出现以上的问题,必须修复!


如果 未选择任何文件 就马上点击 “上传按钮”,$_FILES将会是一个有元素的数组,元素中的每个属性都是空字符串error属性为4

单文件上传

$_FILES 数据结构

array(
    "filename" => array(
        "name" => "xxx.png",
        "type" => "image/png",
        "size" => 2548863,
        "tmp_name" => "/img/sdsdsd.png",
        "error" => 0
    )
)

无论是单文件还是多文件上传,都会有5个固定属性:name / size / type / tmp_name / error

多文件上传

相比单文件上传多文件上传处理起来要复杂多了

前端的两种多文件上传形式

//name相同
//name不同(简单点)

后端的 $_FILES 对应的数据结构不同

//name相同
array (size=1)
  "wt" => 
    array (size=5)
      "name" => 
        array (size=2)
          0 => string "新建文本文档 (2).txt" (length=26)
          1 => string "新建文本文档.txt" (length=22)
      "type" => 
        array (size=2)
          0 => string "text/plain" (length=10)
          1 => string "text/plain" (length=10)
      "tmp_name" => 
        array (size=2)
          0 => string "C:Windowsphp1D64.tmp" (length=22)
          1 => string "C:Windowsphp1D65.tmp" (length=22)
      "error" => 
        array (size=2)
          0 => int 0
          1 => int 0
      "size" => 
        array (size=2)
          0 => int 0
          1 => int 1820

//name不同(简单点)
array (size=2)
  "wt" => 
    array (size=5)
      "name" => string "新建文本文档 (2).txt" (length=26)
      "type" => string "text/plain" (length=10)
      "tmp_name" => string "C:Windowsphp39C7.tmp" (length=22)
      "error" => int 0
      "size" => int 0
  "mmt" => 
    array (size=5)
      "name" => string "新建文本文档.txt" (length=22)
      "type" => string "text/plain" (length=10)
      "tmp_name" => string "C:Windowsphp39D8.tmp" (length=22)
      "error" => int 0
      "size" => int 1820
字段Error用途

值:1 上传的文件超过了 php.ini 中 upload_max_filesize 选项限制的值。

值:2 上传文件的大小超过了 HTML 表单中 MAX_FILE_SIZE 选项指定的值。

值:3 文件只有部分被上传。

值:4 没有文件被上传。

值:5 上传文件大小为0.

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/26183.html

相关文章

  • upload-labs 文件上传靶机闯关记录

    摘要:由于上传后文件后缀仍为,服务器仍将该上传文件以解析。文件是服务器中的一个配置文件,它负责相关目录下的网页配置。文件流实际应用文件系统包括对备用数据流的支持。在中,此默认数据流称为。 靶机搭建 推荐使用Windows系统搭建,我最先使用docker pull c0ny1/upload-labs的镜像在Pass-03遇到问题,初步判断是该镜像内的php.conf文件配置错误导致。 下载地...

    宋华 评论0 收藏0
  • PHP 代码审计:(一)文件上传

    摘要:代码审计一文件上传概述在网站的运营过程中,不可避免地要对网站的某些页面或内容进行更新,这时便需要使用到网站上的文件上传功能。 PHP 代码审计:(一)文件上传 0x00 概述 在网站的运营过程中,不可避免地要对网站的某些页面或内容进行更新,这时便需要使用到网站上的文件上传功能。如果不对被上传文件进行限制,或限制被绕过,该功能便有可能会被利用于上传可执行文件、脚本到服务器上,今儿进一步导...

    vslam 评论0 收藏0
  • 【视频点播最佳实践】使用OSS SDK上传视频到点播

    摘要:确认已准备了阿里云账号,并授予了上传权限。为了扶持更多创业者,降低入行门槛,视频点播已在原有的视频点播服务五个套餐包基础上,推出了超值体验套餐包。另外,体验完成后,阿里云也为提供了五个点播套餐包,供各种需求用户选择。 摘要: 场景 点播上传SDK缺乏需要的语言版本(如C/C++、Go等)或相应的功能(如网络流上传、追加上传),可以直接使用OSS的SDK进行上传。 准备工作 确认已开通点...

    printempw 评论0 收藏0
  • Ueditor 1.4.3.3 PHP图片上传路径修改

    摘要:前言在使用编辑器时,一般我们都是需要修改默认的图片上传路径的,下面是我整理好的修改位置和方法供大家参考。如果想修改上传路径,那么通过修改文件第行就可以做到。 前言 在使用UEditor编辑器时,一般我们都是需要修改默认的图片上传路径的,下面是我整理好的修改位置和方法供大家参考。 操作 Ueditor PHP版本本身自带了一套上传程序,我们可以在此基础中,找到配置文件修改它。配置文件位置...

    KitorinZero 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<