当php脚本开始执行时,通过POST上传文件?

当php脚本开始执行时,通过POST上传文件?,php,upload,Php,Upload,我有一个简单的情况:一些文件通过html表单和POST方法上传,并调用upload.php 在upload.php中,我有一些类似于 <?php // line one // blah blah is_uploaded_file(...); // blah blah move_uploaded_file(...); // blah blah 上传文件后,您的“第一行”将被执行(或者更好地说,当文件从POST表单编码为多部分/表单数据时,由PHP进行处理,请参阅)。但是有些文件可能

我有一个简单的情况:一些文件通过html表单和POST方法上传,并调用
upload.php

upload.php
中,我有一些类似于

<?php
// line one
// blah blah

is_uploaded_file(...);

// blah blah

move_uploaded_file(...);

// blah blah
上传文件后,您的“第一行”将被执行(或者更好地说,当文件从POST表单编码为多部分/表单数据时,由PHP进行处理,请参阅)。但是有些文件可能无法上载,并且您将在$\u files全局数组中获得错误信息,请参阅,原因有几个

如果文件正常,则会在临时目录和临时名称中找到它们(因此需要调用move_uploaded_file())

因此,您可以让两个不同的用户(或浏览器)同时提交相同的文件,但它们将被分开处理(即4个文件x 2个调用,您将得到8个临时文件),如果这是您的问题的话


另外,根据您的问题,一个PHP执行无法为另一个相同脚本的执行取消设置$\u FILES数组。另一种情况是,如果在调用move_uploaded_file()时结束写入相同的路径和文件名,则将以4个文件结束。作为一个小小的建议,您必须更好地理解http请求到Web服务器的流程(在您的案例中是一个包含文件的帖子),然后由PHP脚本处理,该脚本将响应输出到Web服务器,并发送回客户端(浏览器)。

是的,您可以同时上载多个文件,但请注意“会话阻塞”。如果您的上载部分位于登录或其他内容之后,您很可能会在文件上载开始时调用
session\u start()
,以验证用户是否已登录

在这种情况下,会话可能会被上载脚本阻止,直到上载得到处理。(即,在内部移动)

因此-在验证会话之后,但在开始实际的文件移动之前-您可能需要调用
会话_write_close();
来释放会话,并且进一步的脚本可以继续使用会话数据


这对文件下载有更大的影响(如果使用
getFile.php
),但也可以节省几秒钟的上传等待时间。

我不确定你的问题是否是一个“合适”的问题,所以我想问你,但是我已经使用php好几年了,不知道如何回答你的问题,我希望这里的人能回答。也就是说,你能提供更多的细节,或者更具体的例子吗?这是唯一的方法is问题不会很快结束。您甚至可能需要将其分解为多个特定问题。脚本在上载结束后开始执行;$FILES和其他变量不会在concurrents调用之间共享。在我看来,这一切都很容易测试。首先,您打算如何调用另一个PHP脚本?作为包含?@Jay Blanchard:我计划使用javascript定时器调用另一个脚本。这很难检查,因为本地服务器上的上传文件非常快。然后你需要进行测试,当你实际遇到问题时返回。非常好的建议!