Php 直接解析文件上载而不写入文件系统

Php 直接解析文件上载而不写入文件系统,php,apache,file-upload,Php,Apache,File Upload,使用Apache/PHP5,是否可以直接获取上传文件的内容,而不将其写入文件系统 关于这一点,谷歌没有太多报道,但似乎文件上传后总是被写入临时目录。我不确定我是否理解你的意思,但我会尽力回答 这里您可以了解到,每个文件都被上传到php的临时目录。然后由脚本将该文件移动/复制到某个永久的web可访问目录,因为在脚本结束执行后,上载到php临时目录的文件将被删除。在Linux上,您可以在内存中创建文件系统分区。如果您可以确保上传的文件被写入内存中的分区,那么If将被存储在内存中,但其行为就像它存储在

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


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

我不确定我是否理解你的意思,但我会尽力回答


这里您可以了解到,每个文件都被上传到php的临时目录。然后由脚本将该文件移动/复制到某个永久的web可访问目录,因为在脚本结束执行后,上载到php临时目录的文件将被删除。

在Linux上,您可以在内存中创建文件系统分区。如果您可以确保上传的文件被写入内存中的分区,那么If将被存储在内存中,但其行为就像它存储在文件系统中一样,这让Apache/PHP5和您都感到高兴

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

您可以:

<?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>

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

您理解正确-我只使用文件读取其中的数据,如果不需要,我不想将文件存储在文件系统中。那么,除了上传文件和执行脚本之外,我想您不必做任何其他事情。执行后-文件被删除:从文件系统读取文件-显然这并不能解决他的问题。我知道如何读取文件-我的问题是在不将文件写入文件系统的情况下读取文件。根据您发布的内容,上传的文件将写入D:\PHP\wamp\tmp\
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