也许最好从描述场景开始。
我们有一个带有ffmpeg的Debian服务器,我们用它来将各种视频文件转换为FLV。 这些文件由许多不同的人通过FTP提供,并保存在“uploads”文件夹中。
我需要编写一个PHP脚本来遍历uploads文件夹中的所有文件,选择完整的文件(即当前没有上传或没有任何上传错误),然后使用ffmpeg将它们转换为FLV。 / p>
我可以进行转换以及其他所有操作,但如何确定文件是否完整且已完全上传?
非常感谢!
答案 0 :(得分:0)
Afaik你不能弄清楚文件是否仍在上传。您可以每分钟运行一个cronjob来获取文件大小并将它们存储在数据库或文件中。然后如果你第二次运行cronjob并且filesize是相同的:转换它们,如果没有..等一下再重试。
我不相信文件大小存储的文件包含上传完成后的大小。
答案 1 :(得分:0)
还有另一种方法可以解决这个问题,我们已经做了多年。
大多数ftp服务器(proftpd都会)输出一个日志,告诉你文件上传成功完成的时间。您可以将此日志记录设置为名为pipe / fifo的unix,然后让守护程序脚本读取此内容以确定要处理的文件。这非常有效,只有在文件完全成功上传后才能处理文件。