如何允许用户上传多个文本文件,然后将它们保存为字符串并显示它们(在PHP中)?

时间:2014-12-04 10:50:27

标签: php file

我想允许用户使用简单的HTML表单上传多个文本文件,然后将它们保存为字符串。之后,我想将它们显示给用户。例如,假设我有三个文本文件,其中包含以下内容:

file1.txt:这是一些文字。

file2.txt:这是更多文字。

file3.txt:更多文字!

当用户使用HTML表单上传它们时,我想将它们保存为字符串并显示如下:

这是一些文字。

这是更多的文字。

更多文字!

我有以下(不完整)代码,试图只获取一个文件:

    Upload text documents: <br /><br>
    <form action="output.php" method="post" enctype="multipart/form-data">
    <input type="file" name="file" size="50" />
    <br />
    <input type="submit" value="Upload File" />
    </form>

    <?php
    $doc = $_POST['file'];
    echo $doc;
    ?>

如何循环浏览文件并将其保存为字符串,然后以最佳方式显示它们?

4 个答案:

答案 0 :(得分:2)

完成White Marcus的回答

  

在输入文件元素中使用multiple =&#34; multiple&#34;属性。

你应该有:$ _FILES变量,而不是$ _POST

<?php

  var_dump($_FILES);

?>

要使用file_put_contents()

打印文件

祝你好运

答案 1 :(得分:2)

$filenames = array();

    if(isset($_FILES["documents"]))
    {
       for($i=0; $_FILES['documents']['name'][$i] != '' ; $i++)
       {
           $filenames[$i] = $_FILES['documents']['name'][$i];

           $myfile = fopen("$_FILES['documents']['name'][$i]", "r") or die("Unable to open file!");

           echo fread($myfile,filesize("$_FILES['documents']['name'][$i]"));

           fclose($myfile);

        }

    }

我认为这对你有帮助!!!!!!! 1

答案 2 :(得分:1)

    $filenames = array();

    if(isset($_FILES["documents"]))
    {
       for($i=0; $_FILES['documents']['name'][$i] != '' ; $i++)
       {
           $filenames[$i] = $_FILES['documents']['name'][$i];
        }

    print_r($filename);
    }

答案 3 :(得分:0)

使用输入文件元素中的multiple="multiple"属性。