【问题标题】:Deleting ".part" files from folder with PHP使用 PHP 从文件夹中删除“.part”文件
【发布时间】:2014-12-19 16:16:07
【问题描述】:

我正在使用以下内容从指定目录中删除所有文件。

$files = glob('path/to/temp/*');
foreach($files as $file){
if(is_file($file)) 
unlink($file);
}

它会删除除部分上传的文件以外的所有内容,例如:myfile.mp3.part

我尝试在文件路径中指定 .part 只是为了看看我是否可以这样强制:

$files = glob('path/to/temp/*.part');

但这也不起作用。 我在这里错过了什么吗?是否有其他方法可以删除非活动的部分文件?

【问题讨论】:

    标签: php partial delete-file unlink


    【解决方案1】:
    $files = scandir('/path/to/temp');
    
    foreach($files as $key => $file) {
        if ( preg_match('/.*?\.part$/', $file) ) {
            unlink($file);
        }
    }
    

    【讨论】:

    • @Grant 你设置了绝对路径吗?
    • 是的,但我正在使用从路径中的 GET 中提取的变量,这可能是为什么? /path/to/temp/{$myVar}
    • 我的原始代码删除了文件夹中除 .part 之外的所有其他文件,因此我知道它的工作路径明智。
    • 我看到你说它是“plupload”,但在 plupload 中已经有删除 *.part 文件的代码。你的版本是什么?
    • 是的,我知道@waki,最新版本,设置为删除部分文件但不起作用。如果是这样,我就不必尝试使用我自己的 php 脚本 :(
    【解决方案2】:

    我正在使用类似的东西来删除文件夹中的所有文件。

    $dir = "/path/to/temp";
    $files = scandir($dir);
    foreach($files as $file){
        $path = $dir."/".$file;
        if(is_file($path)) unlink($path);
    }
    

    【讨论】:

    • 你在哪里定义$path
    • 抱歉,使用了错误的变量。我已将其编辑为 $file。
    • 也不行,.part 文件还在里面。
    • 我猜这个文件被锁定了,正在被另一个应用程序使用或者你的 webserver/php 没有权限删除这个文件。
    • 有可能,它们是通过 plupload 引擎上传的。有没有办法在删除这些文件之前更改它们的权限?
    猜你喜欢
    • 2011-06-03
    • 2012-02-23
    • 1970-01-01
    • 2016-02-04
    • 2015-08-16
    • 1970-01-01
    • 2011-07-24
    • 2010-11-24
    • 2011-04-07
    相关资源
    最近更新 更多