if(isset($ _ POST [' submitName']))永远不会发生

时间:2017-02-04 03:49:20

标签: php xml forms post submit

我真的检查了所有内容,并完成了所有示例,但没有找到解决方案。基本上我要做的就是简单地上传XML文件并将其存储到特定文件夹。该文件夹已创建,我使用的是XAMPP localhost。

我的代码如下所示:

HTML

<form action="<?php echo $_SERVER['PHP_SELF'];?>" method="POST" enctype="multipart/form-data">
    <div class="row">
        <div class="form-group col-lg-4 col-md-4 col-xs-4 col-sm-4">
            <input type="file" name="fileToUpload" id="fileToUpload" accept="text/xml">
        </div>
    </div>
    <div class="row">
        <div class="col-lg-4 col-md-4 col-xs-4 col-sm-4">
            <button type="submit" class="btn btn-default" id="uploadFile" name="uploadFile" style="width: 100%">Upload</button>
        </div>
    </div>
</form>

PHP

<?php
if (isset($_POST['uploadFile'])) {
    $name = $_FILES["fileToUpload"]["name"];
    $tmp_name = $_FILES['fileToUpload']['tmp_name'];
    $location = 'uploads/';
    move_uploaded_file($tmp_name, $location.$name);
//also tried this -> copy($tmp_name, $location.$name);
} 
?>

提前致谢,

3 个答案:

答案 0 :(得分:0)

如果您正在尝试检查上传的文件,那就不是这样了。使用类似is_uploaded_file的内容:

if(is_uploaded_file($_FILES['fileToUpload']['tmp_name'])) { # note the tmp_name, don't change this
    # handling goes here
}

您的代码无效,因为您正在检查没有值的参数(因为您从未为按钮指定value属性)。此外,不建议在按钮中传递值;如果您需要此类行为(在这种情况下,您不需要),请使用<input type="hidden" name="your-name" value="your-value" />

答案 1 :(得分:0)

所以在经历了2天的痛苦之后,我仍然没有找到解决这个问题的具体方案,但至少我发现它并没有对PHP / HTML代码产生任何影响,但它与服务器有关。 。要连接到本地服务器,我使用XAMPP。

首先,我尝试重新安装它(到同一路径--D磁盘分区) - 没有改变任何东西。

其次,我尝试在C盘上安装它 - 仍然没有

第三,我安装了WAMP,但仍然无法正常工作。我在其他服务器上测试了我的代码,它就像一个魅力。

结论:服务器甚至无法识别提交的表单(IF条件永远不会成立)。

如果有人知道XAMPP的哪个部分或任何其他AMP必须对它做任何事情,请告诉我。我真的很感激。

提前致谢

答案 2 :(得分:0)

[FIXED] 所以,最后..最终因为它使用了..最愚蠢的事情导致最大的混乱。

无论如何,我使用PhpStorm作为我的IDE,它有自己的内置服务器。即使我确实设置了我的参数(php解释器和运行配置),但是发生了PhpStorm自动使用另一台服务器而不是我的(我应该先注意端口,但是你们......)。为什么这首先发生的原因是因为xampp的文档root directoy并不是我存储项目的那个。

你可以做两件事:

  1. 如果使用XAMPP,请将项目存储在htdocs或
  2. 停止Apache和MySql,转到Apache配置 - &gt; Apache(httpd.conff) - &gt;找到DocumentRoot&#34; C:/ xampp / htdocs&#34; &安培; &#34;目录&#34; C:/ xampp / htdocs&#34;
  3. 并替换&#34; C:/ xampp / htdocs&#34;使用您自己的路径(包括项目文件夹本身)并再次启动Apache和MySql。 注意如果您不包含主项目文件夹但包含其父文件夹,那么运行代码时的路径将是localhost:port / projectMainFolder / others

    至于我,你可以锁定这个主题,因为我找到了一个解决方案。再次感谢大家的帮助!