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


How can I allow a user to upload multiple text files, then save them to a string and display them (in PHP)?

我想允许用户使用简单的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;
    ?>

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

$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

完成白色马库斯的回答

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

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

<?php
  var_dump($_FILES);
?>

要打印文件,请使用 file_put_contents()

此致敬意

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

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