我有一个PHP脚本,可以将文件移出服务器上的特定文件夹(IBM AS400)。我遇到的问题是,有时脚本会在文件仍处于移入文件夹的过程中运行。
我的逻辑很差,假设一个文件“正在使用”,PHP不会尝试移动它,但它会导致文件损坏。
我以为我可以这样做:
$oldModifyTime = filemtime('thefile.pdf');
sleep(2);
if($oldModifyTime === filemtime('thefile.pdf'){
rename('thefile.pdf','/folder2/thefile.pdf');
}
但即使在写入文件时,filemtime函数也会提供相同的值。我也试过了相同结果的文件。
如果我在Windows中执行右键单击 - >属性,则修改日期和访问日期会随着文件的写入而不断变化。
在做任何事情之前,如何确定文件是否已完成传输的任何想法?
答案 0 :(得分:1)
将其作为临时名称或其他文件夹传输,然后在传输完成后将其重命名/复制到正确的文件夹。
答案 1 :(得分:1)