我用这条线
isset( $_FILES['ufile']['tmp_name'] );
测试文件上传。我遇到的问题是我无法获得“清除”的值。
如果我进去手动输入
unset( $_FILES['ufile']['tmp_name'] );
我可以清除它,但是一旦我删除它,它就会以某种方式被 PHP 填充。此过程中没有实际的文件上传。
如何准确检测文件何时上传以及上传脚本何时完成。
我问的原因是因为控制类工作在这个变量上,并且它最近停止工作。
在 javascript 中,我最近改变了重新加载的方式,我认为这导致了我的 PHP 变量的持久性问题。
特别是我从 window.location.href = location.... 转到 window.reload()
<?php
include 'class.Control.php';
$ControlEntryObject = new ControlEntry();
class ControlEntry
{
public function __construct()
{
if( isset( $_FILES['ufile']['tmp_name'] ) )
{
if( ( $_FILES['ufile']['tmp_name']) != '' )
{
Control::upload( $_FILES['ufile']['type'], $_FILES['ufile']['tmp_name'] );
}
else
{
Control::reload();
}
}
else if( isset($_POST['ajax_type']) )
{
Control::ajax( $_POST['ajax_type'] );
}
else
{
Control::reload();
}
}
}
最佳答案
您最好检查错误代码以查看上传是否成功,而不是检查临时文件名。
if( $_FILES['ufile']['error'] === UPLOAD_ERR_OK )
{
// process upload
}
这样您的脚本就可以安全地处理 get 和 post 请求。
关于php - $_FILES 何时创建/清除 |与 javascript 重新加载的关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8994823/