2017-07-18 83 views
0

我有一个脚本,除了.txt文件,输入文件完美的工作。 我真的不知道它有什么问题。但是,如果我打开其他扩展名(如.csv,.rar,.zip等),它的工作原理和我的$ _POST有一些东西。 但是,如果我去任何* .txt文件,我只是得到我的$ _POST数组null。PHP无法读取txt文件

如果我用这个代码:

$sListText = file_get_contents("act20170713.txt"); 
echo "<br/>".nl2br($sListText); 

它只是很好地工作。但是,如果使用:

$fileexcel = $_FILES['txt']['tmp_name']; 
echo $fileexcel; 

我得到了一个空数组仅* .txt文件

有人能向我解释也许有它的解决方案吗? 任何答案将不胜感激。预先感谢。

亲切的问候, Fondra

我添加一些屏幕截图的详细 enter image description here

enter image description here

全码:

<form action="" method="post" enctype="multipart/form-data" name="form2" id="form2"> 
     <div class="row"> 
     <div class="col-md-3"> 
     <input id="file" type="file" name="txt" style="text-align:right;-moz-opacity:0;filter:alpha(opacity:0);opacity:1;z-index: 2;"/>  
     </div> 
     <div class="col-md-3" style="padding-left:4.5%"><input type="submit" name="list" class="btn btn-info" value="Show"/></div> 
     <div class="col-md-3"></div> 
     <div class="col-md-3" ><input type="submit" name="clear" class="btn btn-default" value="Clear" style="float:right"/></div> 
      </div> 
        </form> 
<?php if (isset($_POST['list'])){ 
     var_dump($_FILES); 
     $fileexcel = $_FILES['txt']['tmp_name']; 
     echo $fileexcel; 
     print_r($_FILES['txt']); 

     //echo "test"; 
     //$sListText = file_get_contents("act20170713.txt"); 
     //$data = explode("\n", $sListText); 
?} 
+0

'print_r($ _ FILES)'找出 - else提供HTTP请求转储和提交表单。 – mario

+0

我给了数组null。如果该文件是.txt文件。这是唯一的问题。 如果文件不是.txt文件,它只是完美的工作 –

回答

0

是txt文件非常大?也许PHP对文件大小感到窒息?检查upload_max_filesizepost_max_size PHP配置设置 - 我已经看到文件超过post_max_size没有返回任何错误的情况,类似于你的情况。

+0

是的。那就是问题所在。它有9.988.894长度和44.534行。 谢谢。因为你,我发现唯一的问题。 –

0

这是PHP 5如何阅读一个我在W3School上找到的文本文件。

<?php 
$myfile = fopen("webdictionary.txt", "r") or die("Unable to open file!"); 
echo fread($myfile,filesize("webdictionary.txt")); 
fclose($myfile); 
?> 

Source

希望有所帮助。

+0

我可以手动读取“.txt”文件,但我想动态读取它。 这就是为什么我尝试使用“输入文件”。 但它不工作txt文件,但很好的工作在csv或其他文件 –

1

我觉得你可以var_dump($_FILEs)看到,检查你的HTML表单有enctype="multipart/form-data"

+0

抱歉,但没有。 它就像输入文件阻止来自* .txt文件的任何输入(字面意思)。 即使我使用var_dump我刚刚得到数组null。 但它可以完美地与其他扩展名(.csv等) –

+0

我认为你可以粘贴代码看看 – vincenth520