压缩上传文件的代码无法删除临时文件

发布于 2024-11-15 02:38:47 字数 739 浏览 6 评论 0原文

伙计们,我正在编写代码来上传文件、压缩文件并删除 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);
}

I guys, i'm writting code to upload file, zip them and delete tmp file.
But when i use unlink function, it do not remove all file, someone can explain to me why ?

Concerned php code :

$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);
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

一杆小烟枪 2024-11-22 02:38:47
foreach($files_to_delete AS $file){
    //unlink(dirname(__FILE__).'/'.$path);
}

在此块中,您应该将 $path 替换为 $file,因为这就是您要查找的内容。您会收到错误,因为第一次取消链接 $path 后,$path 处的文件被取消链接,但它的每个其他迭代都会尝试删除同一文件(这是分配给 $path 变量的最后一个文件)。

foreach($files_to_delete AS $file){
    //unlink(dirname(__FILE__).'/'.$path);
}

In this block you should replace $path with $file since that's what you're foreaching them as. You get the error because after you unlink $path the first time, the file at $path is unlinked, but every other iteration of it tries to delete the same file (which is the last one assigned to the $path variable).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文