我想让我的PHP脚本在我选择的目录中上传一个带有特定文件名的文件。然而,问题是我需要它在上传后立即存在,所以我可以在我的服务器上监视它。我不想使用PHP扩展或其他东西 - 这应该很容易转移到任何PHP设置。
所以基本上:有没有办法保证,从文件上传过程的一开始,文件在服务器上有一定的名称和位置?
答案 0 :(得分:3)
不是我知道的。
PHP将使用php.ini定义的tmp文件夹来存储上传,直到您使用move_uploaded_file()将它们复制到正确的位置。因此,很容易知道它的位置,但文件名是随机的,我认为你不能定义它。 如果您不打算进行多个并发上传(例如,如果您只是要上传文件而且您知道不会同时上传2个文件),则可以检查tmp目录中的最新上传文件
监控上传的常见解决方案是apc.rfc1867
答案 1 :(得分:1)
我知道三个选项:
答案 2 :(得分:0)
我认为您不能配置名称,因为它将是临时文件夹中的随机名称。您应该可以更改目录,但我似乎无法在Google找到答案(请查看php.ini
)。
答案 3 :(得分:0)
据我所知,PHP无法实现这一点,因为文件上传请求会在一个请求中将整个文件提交给系统。因此,在收到整个请求之前,PHP服务器无法知道发生了什么。
答案 4 :(得分:0)
没有办法仅使用PHP监控文件上传进度,因为PHP在上传过程中不会调度进度事件。即使Flash通过PHP脚本上传,也可以使用Flash上传器。 Flash在上载期间轮询服务器上的临时文件以分发进度事件。一些像YUI这样的javascript框架使用SWF来管理上传。查看YUI的Uploader小部件。