我们,我正在编写代码来上传文件,压缩它们并删除tmp文件。 但是当我使用 unlink 功能时,它不会删除所有文件,有人可以向我解释原因吗?
关注php代码:
$zip = new ZipArchive();
$target_path = 'img/products/';
$zip->open($target_path.$id_insert.'.zip', ZIPARCHIVE::CREATE);
$img_count = $_POST['count_file'];
for ($i = 1; $i <= $img_count; $i++){
$temp = 'img'.$i;
$file = $i.'-'.$id_insert.'-'.$_FILES[$temp]['name'];
$path = $target_path.basename($file);
if(move_uploaded_file($_FILES[$temp]['tmp_name'], $path)) {
$zip->addFile($path, basename($file));
$files_to_delete[] = $path;
}
}
$zip->close();
foreach($files_to_delete AS $file){
//unlink(dirname(__FILE__).'/'.$path);
}
答案 0 :(得分:3)
foreach($files_to_delete AS $file){
//unlink(dirname(__FILE__).'/'.$path);
}
在这个块中你应该用$ file替换$ path,因为那就是你正在将它们作为它们。您收到错误是因为第一次取消链接$ path后,$ path中的文件被取消链接,但是它的每次迭代都会尝试删除同一个文件(这是分配给$ path变量的最后一个文件)。