是否有可能在PHP中接收上传的文件而不将它们存储在文件系统中?


Is it possible to receive uploaded files in PHP without storing them on the filesystem?

据我所知,PHP将所有上传的文件存储在upload_tmp_dir(或系统默认的tmp dir,如果upload_tmp_dir未在PHP .ini文件中设置)。

通常的方法是使用move_uploaded_file

将该文件移动到另一个位置

我的问题是:有没有一种方法来检索文件在一个变量?所以它在任何时候都不需要存储在文件系统上?

原因是,我不需要事后清理文件,也不需要关心文件系统的权限。

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

保留临时文件通常是安全的,PHP会在请求结束时删除它(除非PHP在脚本期间严重崩溃)。

您可以读取临时文件,将其转换为Base64(例如)并将其存储在变量中。