首页 > 编程语言 >求PHP超大文件上传解决方案:分片断点上传(一)

求PHP超大文件上传解决方案:分片断点上传(一)

时间:2023-04-06 14:13:26浏览次数:57  
标签:文件 max 超大 源码 post PHP 上传 size

 PHP用超级全局变量数组$_FILES来记录文件上传相关信息的。

1.file_uploads=on/off

  是否允许通过http方式上传文件

2.max_execution_time=30

  允许脚本最大执行时间,超过这个时间就会报错

3.memory_limit=50M

  设置脚本可以分配的最大内存量,防止失控脚本占用过多内存,此指令只有在编译时设置了 
   --enable-memory-limit标志的情况下才生效

4.upload_max_filesize=20M

  允许上传文件的最大大小,此指令必须小于post_max_size

5.upload_tmp_dir

  上传文件临时存放目录

6.post_max_size=30M

  允许post方式可以接受最大大小

$_FILES['myFile']['name']   客户端上次文件的原始名称。 

$_FILES['myFile']['type']   文件的 MIME 类型,需要浏览器提供该信息的支持,例如"image/gif"。 

$_FILES['myFile']['size']   已上传文件的大小,单位为字节。 

$_FILES['myFile']['tmp_name']   文件被上传后在服务端储存的临时文件名,一般是系统默认。可以在php.ini的upload_tmp_dir 指定,但 用 putenv() 函数设置是不起作用的。 

$_FILES['myFile']['error']   和该文件上传相关的状态码。['error'] 是在 PHP 4.2.0 版本中增加的。下面是它的说明:(它们在PHP3.0以后成了常量) 

UPLOAD_ERR_OK 

    值:0; 没有错误发生,文件上传成功。

UPLOAD_ERR_INI_SIZE 

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

UPLOAD_ERR_FORM_SIZE 

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

  UPLOAD_ERR_PARTIAL 

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

  UPLOAD_ERR_NO_FILE 

    值:4; 没有文件被上传。 

    值:5; 上传文件大小为0. 
文件被上传结束后,默认地被存储在了临时目录中,这时您必须将它从临时目录中删除或移动到其它地方,如果没有,则会被删除。

也就是不管是否上传成功,脚本执行完后临时目录里的文件肯定会被删除。

附:修改PHP上传文件大小限制的方法

1. 一般的文件上传,除非文件很小.就像一个5M的文件,很可能要超过一分钟才能上传完.

但在php中,默认的该页最久执行时间为 30 秒.就是说超过30秒,该脚本就停止执行.

这就导致出现 无法打开网页的情况.这时我们可以修改 max_execution_time

在php.ini里查找

max_execution_time

默认是30秒.改为

max_execution_time = 0

0表示没有限制

2. 修改 post_max_size 设定 POST 数据所允许的最大大小。此设定也影响到文件上传。

php默认的post_max_size 为2M.如果 POST 数据尺寸大于 post_max_size $_POST 和 $_FILES superglobals 便会为空.
查找 post_max_size .改为

post_max_size = 150M

3. 很多人都会改了第二步.但上传文件时最大仍然为 8M.

为什么呢.我们还要改一个参数upload_max_filesize 表示所上传的文件的最大大小。

查找upload_max_filesize,默认为8M改为

upload_max_filesize = 100M

另外要说明的是,post_max_size 大于 upload_max_filesize 为佳.

上传效果展示:

 

示例下载地址

源代码文档

asp.net源码下载jsp-springboot源码下载jsp-eclipse源码下载jsp-myeclipse源码下载php源码下载csharp-winform源码下载vue-cli源码下载c++源码下载

详细配置信息及思路

 

 

 

标签:文件,max,超大,源码,post,PHP,上传,size
From: https://www.cnblogs.com/songsu/p/17292556.html

相关文章

  • java文件上传审计
    审计点简述  审计文件名-审计后缀名-审计文件内容-审计点--文件名称1.文件名存在目录穿越漏洞漏洞原因:开发者直接将用户输入的文件名拼接在路径上进行查找漏洞修复:开发者直接指定一个路径,不信任用户的路径(添加一个时间戳)文件名直接拼接产生漏洞:/ab/c+file_name--......
  • 在 Linux 中使用 sFTP 上传或下载文件与文件夹
    导读sFTP(安全文件传输程序)是一种安全的交互式文件传输程序,其工作方式与FTP(文件传输协议)类似。然而,sFTP比FTP更安全;它通过加密SSH传输处理所有操作。它可以配置使用几个有用的SSH功能,如公钥认证和压缩。它连接并登录到指定的远程机器,然后切换到交互式命令模式,在......
  • PHP基础知识之————PHP Web脚本中使用FFmpeg
    简介本文将尝试指出在PHPWeb脚本中使用FFmpeg时需要了解的所有重要事项。它还将显示一些使用示例,以使事情更清楚。这个想法也可以应用到其他web脚本语言。从PHP脚本调用命令行工具选择一个模型网页设计为快速执行,以便浏览您的网站的人不必等待太多的响应。因为如果他们无聊的等待,......
  • ThinkPHP 3.2 路径问题
    一、阿帕奇域名已经开始访问的时候:(去掉index.php)访问路径:http://wechatu.xd107.com/Pay/Index/payToJS路径代码:var$URL="__ROOT__/Pay/Index/";二、阿帕奇域名没开启:(没有掉index.php)访问路径:http://soft.amaitech.com/index.php?s=/Home/Login/index.htmlJS路径代码......
  • ThinkPHP 3.2公共类库、应用类库ThinkPHP/Library讲解
    一、ThinkPHP的类库主要包括公共类库和应用类库,都是基于命名空间进行定义和扩展的。只要按照规范定义,都可以实现自动加载。       公共类库公共类库通常是指ThinkPHP/Library目录下面的类库,例如:         Think目录:系统核心类库         Org目录:第......
  • PHP 文件加密Zend Guard Loader 学习和使用(如何安装ioncube扩展对PHP代码加密)
    一、大体流程图二、PHP项目文件加密 下表列出了Zend产品中的PHP版本及其内部API版本和Zend产品版本。如何加密请往后看三、如何使用第一步:确认当前环境AmaiPhalcon前,请确认您具备以下两个条件,如果您的环境不满足此条件,建议您对系统环境进行重新配置。条件1:PHP版本在5.5.X以上(......
  • php弱类型比较与强类型比较
    一般容易把==与!==混淆,认为!==是==的取反实际上==与!=同属弱类型比较===与!==同属强类型比较弱类型比较$a==$b、$a!=$b弱类型比较在比较之前会进行类型转换,再进行值的比较特点(常用的绕过方式)含数字的字符串以数字开头的字符串,可以被字母、特殊......
  • jsp+servlet实现的人力资源管理系统(实现了注册登录、部门管理、招聘管理、培训管理、
    @目录jsp+servlet实现的人力资源管理系统实现功能截图系统功能使用技术完整源码jsp+servlet实现的人力资源管理系统本系统是一个servlet原生框架实现的人力资源管理系统,实现了注册登录、部门管理、招聘管理、用户管理、薪资管理、职位管理等常用功能。(文末查看完整源码)实现......
  • easy-excel读取远程地址获得文件进行上传
    背景作为一个快五年的程序员,一直以来还没有自己维护过自己的技术栈,最近也是有时间,所以也是下定决心,从头开始,一步一步的夯基础。最近在系统化的学习easy-excel,今天遇到了一个问题,特意记录一下。目的尝试前端上传文件到文件存储器,然后请求的时候带上这个路径,后台解析这个路径,做ex......
  • PHP初学体会
     近来,闲来无事,把去年买的《PHP开发实战权威指南》通读1遍和精读1遍。总体感觉,不是很难。相比,C/C++/Java要简单许多,可能是因为已经学习过好几门语言了,所以理解起来相对比较轻松。IDE使用的是WampServer,安装之后,把php文件放进去,就可以通过url直接访问了。不需要编译,能立即看到效果......