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

标签 php upload

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

upload.php 我有一些 php 的东西,比如

<?php
// line one
// blah blah

is_uploaded_file(...);

// blah blah

move_uploaded_file(...);

// blah blah

那么,这个脚本何时开始执行(到达“第一行”)?当我点击提交按钮或文件完全上传时?我可以调用另一个 php 脚本并且两个脚本将同时执行吗?当 upload.php 调用 move_uploaded_file() 时,如果我在另一个脚本中循环使用的全局对象 $FILES 未设置,会发生什么情况?

最佳答案

您的“第一行”在文件上传后执行(或者更好地说,由 PHP 处理,因为它们从您的 POST 表单编码为 multipart/form-data,请参阅 here )。但是某些文件可能无法上传,您将在 $_FILES 全局数组中获得错误信息,请参阅 here ,出于几个原因。

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

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

此外,根据您的问题,一个 PHP 执行不能为另一个相同脚本的执行取消设置 $_FILES 数组。另一个故事是,如果您在调用 move_uploaded_file() 时结束写入相同的路径和文件名,您将以 4 个文件结束。作为一个小建议,您必须更好地理解对网络服务器的 http 请求流程(在您的情况下是一个带有文件的 POST),然后由您的 PHP 脚本处理,该脚本输出对发送回网络服务器的响应客户端(浏览器)。

关于php - 当 php 脚本开始执行时,通过 POST 上传文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48752486/

相关文章:

php - 如何使用 Mailgun 的官方 PHP SDK 在邮件成功排队时读取 API 响应?

javascript - 将调整大小的表单图像上传到服务器

html - grails中的多文件输入类型上传

php - 产品网格中的自定义 SQL

php - 不插入数据库。 PHP 和 MySQL

javascript - 尝试使用 javascript 和新的 update_with_media.json 调用将照片上传到 Twitter

html - 上传前显示图片预览

download - 有没有公​​共FTP服务器可以测试上传和下载?

php - 菜鸟PHP问题

php - 从两个数据库表中的下拉列表中选择一个值