isset($ _ POST [])不起作用

时间:2015-06-26 00:10:24

标签: php

我得到了这个文件upload.html以下代码所在的位置,每次我浏览文件并在isset($ _ POST)提交失败。它回应“没有上传”,它在另一个文件夹中使用相同的文件正常工作。我所做的只是将整个网站文件夹内容移动到另一个文件夹,它停止工作。

   <h3>File Upload:</h3>
Select a file to upload: <br />
<form method="post" action="" enctype="multipart/form-data">
<input type="file" name="file" size="50" />
<br />
<input type="submit" name="uploadxls" value="Upload File" />
</form>



<?php

include("../include/processxls.php");

date_default_timezone_set('America/Chicago');

if (isset($_POST['uploadxls']) && !empty($_POST['uploadxls']))
{
    echo "test point";
    uploadReport();
}
else 
{
    echo "didn't upload";
}



function uploadReport()
{

$report=basename($_FILES['file']['name']);
$report=str_replace(' ','|',$report);

$tmppath="uploads/".$report;

    if(move_uploaded_file($_FILES['file']['tmp_name'],$tmppath))
    {
        echo " File upload success. Please wait while report is processed....... "; 

        processxls($tmppath);
    }
    else
    {
        echo "fail";
    }   
}

?>

2 个答案:

答案 0 :(得分:0)

不同的浏览器会忽略提交按钮的值,并且不会使用POST

发送此数据

使用隐藏的输入字段,然后无论浏览器如何都会提交。

<input type='hidden' name="uploadxls" value="Upload File">

答案 1 :(得分:0)

您应该使用$_SERVER['REQUEST_METHOD']

确定它是否是帖子
if( $_SERVER['REQUEST_METHOD'] === "POST" ) {
    // Do checks and logic
}

这样您就不必担心浏览器发送提交按钮或使用隐藏值。 PHP有一个内置变量,也可以使用它。