明智地从其临时位置获取上传的文件内容?

时间:2011-07-26 13:18:42

标签: php file file-upload

我正在构建一个系统,用户可以将文件作为数据上传(不是永久存储,只是内容)。现在我想知道从PHP提供的临时位置获取文件内容是否明智,如下所示:

file_get_contents($_FILES['file']['tmp_name'])

在localhost上正常工作,但我担心在托管上会有一些许可问题等?任何帮助表示赞赏。

4 个答案:

答案 0 :(得分:6)

获取数据的唯一机会是通过读取'tmp_name'变量中给出的文件。没有其他办法可以做到这一点。 PHP将文件放在那里,所以你可以放心它是可读的。如果不是,则服务器配置中断。

答案 1 :(得分:1)

您可以使用upload_tmp_dir指令配置上传文件的位置,这样您就不会收到任何权限错误。但是,您无法使用ini_set在运行时设置此项。

如果您想将上传的文件移至新位置,请使用move_uploaded_file

答案 2 :(得分:1)

这是普遍接受的方式。假设upload_tmp_dir位置是世界可读/可写的位置(它必须接受上传),您将能够在上传后读取它。

答案 3 :(得分:0)

根据我的理解,你几乎可以保证tmp目录中的文件至少存在,直到PHP进程终止,但是我使用fopen()而不是file_get_contents。

关于权限,PHP进程将从头文件中写入文件,这样您就可以100%保证同一进程也具有读访问权。

相关问题