代码之家  ›  专栏  ›  技术社区  ›  jimyi

直接解析文件上传,无需写入文件系统

  •  2
  • jimyi  · 技术社区  · 16 年前

    使用Apache/PHP5,是否可以直接获取上传文件的内容,而无需将其写入文件系统?

    关于这一点,谷歌上没有太多信息,但似乎文件上传后总是会写入临时目录。

    3 回复  |  直到 16 年前
        2
  •  0
  •   Imagist    16 年前

    在Linux上,您可以在内存中创建文件系统分区。如果你能确保上传的文件被写入内存中的分区,If将被存储在内存中,但就像它被存储在文件系统中一样,让Apache/PHP5和你都满意。

    任何 将文件写入内存而不是文件系统的解决方案需要严格限制文件的大小和数量。通过避免写入磁盘,您将看到速度的提高,但如果您使用足够的内存将其他数据推入页面文件或交换,您的“优化”将很快适得其反。

        3
  •  0
  •   inakiabt    16 年前

    <?php
    if (!empty($_FILES))
    {
        echo "<pre>";
        print_r($_FILES);
        echo file_get_contents($_FILES['file']['tmp_name']);
        echo "</pre>";
    }
    ?>
    <form id="myForm" method="post" enctype="multipart/form-data">
        <input type="file" name="file" />
        <input type="submit" value="Send" />
    </form>
    

    输出:

    Array
    (
        [file] => Array
            (
                [name] => mytextfile.txt
                [type] => text/plain
                [tmp_name] => D:\PHP\wamp\tmp\php1283.tmp
                [error] => 0
                [size] => 1473
            )
    
    )
    My text file My text file My text file My text file My text file My text file 
    My text file My text file My text file My text file 
    My text file My text file My text file My text file My text file My text file 
    My text file My text file My text file 
    My text file My text file My text file My text file My text file 
    

    我不知道它是否受到某些php.ini变量的限制。

    推荐文章