【问题标题】:PHP File upload - memory handling on CGIPHP 文件上传 - CGI 上的内存处理
【发布时间】:2011-07-01 22:13:13
【问题描述】:

我想知道 PHP 如何处理文件上传。我read 文件上传将被分割成块,并在上传完成后组装。这个事实有任何验证吗?这将有助于了解文件上传的处理和设置。 mod_php 和 CGI​​ 的处理方式一样吗? mod_php 与 Apache 更紧密地联系在一起。 CGI 必须读取一个流,然后才能做到这一点。

这个过程涉及的内存是怎样的。

这对吗?

  1. Apache 处理 HTTP request
  2. Apache 通过 CGI 调用 PHP 并流式传输数据(管道)
  3. PHP 将输入拆分为一定大小的块,以免达到内存限制
  4. 找到流结束
  5. PHP 将拆分文件组装成一个文件,并将删除拆分文件
  6. 有关文件上传的信息将保存到 $_FILES

【问题讨论】:

  • 我认为您提供的文档链接准确地描述了如何自己测试。

标签: php apache memory upload cgi


【解决方案1】:

PHP 确实以块的形式读取文件,但它不会将它们写入单个文件然后重新组合它们,它会一直将它们写入到您在 $_FILES 中获得的同一个临时文件中。

mod_php 和 CGI​​ 是一样的。

这是负责的代码:http://svn.php.net/viewvc/php/php-src/branches/PHP_5_3/main/rfc1867.c?revision=307583&view=markup#l1065

【讨论】:

    猜你喜欢
    • 2011-10-20
    • 1970-01-01
    • 1970-01-01
    • 2011-11-06
    • 1970-01-01
    • 2016-08-28
    • 2015-03-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多