有没有办法在PHP上传开始之前运行一些脚本?

时间:2010-03-24 21:42:54

标签: php nginx

你可以在php上传文件之前运行一些脚本吗?例如,我正在POST上传到upload.php,在那个文件中我想先检查他们的$ _SESSION,然后再开始浪费带宽并将文件统计信息上传到我的服务器。我在nginx上使用php 5.2.11。

<?php
  if ($_SESSION['admin'] == 'YES') {
    // do upload here
  } else {
    exit;
  }
?>

3 个答案:

答案 0 :(得分:2)

没有。在文件上传之前,请求才会进入PHP引擎。

答案 1 :(得分:1)

不,因为上传是请求的一部分,并且在PHP发挥作用之前完成。

使用基于PHP- / Perl的上传者的技术可能可以解决这个问题,这些上传者会以某种方式挂钩上传过程,但是,也可能没有。特别是当您使用其他Web服务器时。

我会对正确的会话进行基于Ajax的快速检查,并将其绑定到要上传文件的表单的submit事件。它可能需要半秒钟,但对用户来说完全不显眼。

答案 2 :(得分:0)

您可以在提交表单的页面上进行ajax调用,以便在允许表单提交之前检查其会话状态。