-1
我決定只是通過ftp下載一個文件,然後將下載的文件重命名爲正確的名稱,而不是直接下載文件。這樣文件發生故障的時間就很少。下載一個文件然後重命名它
這裏是代碼
$status=ftp_get($conn_id, $temp , $filename, $mode);
rename ($temp , $filename);
的「本質」我基本上得到了一個錯誤,指出文件$溫度是在使用所以不能重命名。
事情是下載完成。
我應該關閉文件還是什麼?如何告訴PhP,你好,$ temp已完成,現在我需要重命名它。
這是代碼
function dealWithOneFile($filename,$conn_id)
{
$ftpsize = ftp_size ($conn_id, $filename);
$ext = pathinfo($filename, PATHINFO_EXTENSION);
if ($ext == "php" || $ext == "bin" || $ext == "dat" || $ext == "BIN" || $ext == "inc")
{
}
else
{
return;
}
while(false)
if (file_exists ($filename))
{
$filesize =filesize ($filename);
if ($filesize==$ftpsize)
{
echo "file size is the same with the one we have here\n";
return;
}
}
$temp = "temp.bin";
$mode= FTP_BINARY;
if ($ext=="php")
{
$mode = FTP_ASCII ;
}
$status=ftp_get($conn_id, $temp , $filename, $mode);
if ($status) {
echo "Successfully written $filename to $temp\n";
if (file_exists($filename))
{
$tempsize = filesize ($temp);
if ($filesize==$tempsize)
{
echo "file size is the same with the one we have here\n";
return;
}
}
while(false);
//unlink ($filename);
rename ($temp , $filename);
echo "Succesfully update $filename \n";
} else {
echo "There was a problem\n";
}
}