ZHYCarge的博客

旧平台,已不再维护,请点击下方链接转至新平台访问

0%

如何使用php进行上传文件

前言

由于需要设置提交报告,因此需要写一个提交模板

过程

设置php.ini以及相关参数讲解

与网上大部分内容一样,需要对php.ini的内容进行修改
我们可以通过使用locate php.ini对此文件进行查找定位(如果没有请安装locate服务)
内容修改如下:

  • file_uploads= On
    (开启php文件上传功能)
  • upload_tmp_dir =
    (开启临时存放位置,若此项为空,则为系统默认位置)
  • upload_max_filesize = 2M
    (设置最大上传文件大小,默认为2M)

    请注意:该选项与下面的选项息息相关,如果下面没有修改,修改上面也没有用

  • post_max_size = 8M
    (设置post表单最大提交大小,要和上面的一起设置 此大小要大于上面的大小,否则容易上传空文件上来)
  • post_max_size = 100M
    (如果启用了内存限制,则应该小于这个值【俺没用过】)
  • max_execution_time=30
    (每个php脚本最大的运行时间,默认为30s)
  • max_input_time = 60
    (设置php解析文件所需要的时间,若上传文件为大文件的时候,应将此项内容修改长一点,如果设置为0,则代表无限制)
  • memory_limit = 128M
    (设置每个php脚本使用内存的最大容量,如果脚本过于垃圾,则可以限制它,防止影响其他程序,若设置为-1则代表无限制)

    上传文件参数解释

    当使用php上传文件时,$_FILES[‘filename’]则是php返回的关于上传文件的一串参数值,以下是具体解释
  • [‘name’] 代表的是上传文件的文件名称
  • [‘type’] 文件类型,即doc文件、jpg文件,ppt文件等
  • [‘tmp_name’]如果相关参数没有问题,文件则会被上传到临时存放位置,如上面设置的文件存放点或者是系统默认的存放位置,并在此处会返回文件的存放路径以及临时存放名称
  • [‘error’] 如果相关参数设置没有问题,则不会产生报错,即error=0
  • [‘size’]文件大小,代表着这个文件有多大

相关错误解释

如果发现临时文件没有内容但是一切正常不报错

这个问题是最苟的,因为不报错,所以有很多情况,其中我只讨论与我遇到的(写博客原因)

  • 请检查是否给予权限
    网页以及php的权限基本上都是www-data,但是你的文件夹是root的,因此可能会出现无权操作文件的情况出现,因此我们可以在你设置的临时文件夹以及文件最后的存储位置,使用
    sudo -u www-data touch 123命令来查询是否具有权限创建文件,若发现没有,则需要使用chown www-data:www-data -R '你所要赋予权限的文件夹'进行赋予相关权限(如果显示权限不够加sudo或者使用root用户进行操作)

    如果发现临时文件存放位置为空

    一般来讲那就证明文件无法存放在相关位置,请检查文件大小是否超出php.ini中的设置,如果确实超过了,则需要对其进行更改
-------------我也是有底线的哦如需更多,欢迎打赏-------------