繁体   English   中英

取消链接不适用于我使用guzzle下载的压缩文件

[英]Unlink doesn't work for gzipped files that I downloaded using guzzle

我使用foreach循环下载了许多压缩文件,在每个循环中都将文件解压缩。 到目前为止,一切都还好,但是循环结束时我想取消链接压缩文件。 代码如下。

...
... // Previous processes
...

$destinationPath = './files/lld/' . $data['hour'] . '.gz';
fopen($destinationPath, 'w+');

...
... // Download processes
...

// Unzip
$gzfile = gzopen($destinationPath, "rb");
$tsvFile = fopen($destinationTsvPath, "w");

while ( ! gzeof($gzfile)) 
{
    $string = gzread($gzfile, 4096);
    fwrite($tsvFile, $string, strlen($string));
}

gzclose($gzfile);
fclose($tsvFile);

// Delete
unlink($destinationPath);

除取消链接过程外,其他所有东西都在工作,并且没有任何错误日志。 我在这个网站上读过类似的问题,答案之一是在gzlose()函数之后使用unlink()。 我已经尝试过,但是没有结果。

似乎您没有足够的权限删除该文件。 我建议您像这样在unlink()之前执行chmod(这将尝试更改权限):

fclose($destinationPath);
chmod($destinationPath, 777);
unlink($destinationPath);

如果这不起作用,则将目录(用于存储这些文件的目录)的权限设置为775 您可以通过SSH或FTP执行此操作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM