php 文件 POST 上传而不保存

2022-08-30 19:55:11

我在PhP脚本中使用纯文本文件。有没有办法在PhP脚本中处理文件而不将其保存在本地?无论我在哪里看到,只需上传文件并保存即可。我只需要从文件中提取一些名称并完成它。如果我使用文件的本地副本,我就可以让其他所有内容都正常工作,因此保存它,然后删除它有效。我只是想知道是否有一种方法可以跳过保存副本并直接获取该信息。

我们在此处上传文件。

<html>
<body>
    <form action="test.php" method="post" enctype="multipart/form-data">
        <label for="file">Filename:</label><input type="file" name="file" id="file" /> <br />
        <input type="submit" name="submit" value="Submit" />
    </form>
</body>
</html>

在脚本中,使用本地保存的文件的副本,我只是使用

$file = fopen($_FILES['file']['name'], "r");

答案 1

如果它的文本文件(假设大小不是那么大),通常你可以通过以下方式读取它:

$contents= file_get_contents($_FILES['file']['tmp_name']);

如果您不确定是哪种类型的上传,请检查请求方法

if(strtolower($_SERVER['REQUEST_METHOD'])=='post')
    $contents= file_get_contents($_FILES['file']['tmp_name']);
elseif(strtolower($_SERVER['REQUEST_METHOD'])=='put')
    $contents= file_get_contents("php://input");
else
    $contents="";

答案 2

提交表单后,请检查属性。这是保存在临时系统路径中的文件的路径。您可以使用继续读取名称,然后简单地忘记该文件。系统将负责删除它。$_FILES['input_name']['tmp_name']/tmpfile_get_contents()


为了从其他答案中脱颖而出,理论上你可以阅读文件,甚至不使用JavaScript上传它,请参阅 http://www.html5rocks.com/en/tutorials/file/dndfiles/。然后仅提交作为 AJAX 请求一部分所需的数据。


推荐