当我尝试删除图像时 unlink() 不起作用 PHP
unlink() not working while I try to remove an image PHP
我正在尝试使用 unlink()
函数从目录中删除图像。
if (file_exists($oldPicture)) {
unlink($oldPicture);
echo 'Deleted old image';
}
else {
echo 'Image file does not exist';
}
$oldPicture
的值为 ../images/50/56/picture.jpg
。
下面的代码块运行没有任何错误,但是当我检查目录时图像仍然存在。
我是不是做错了什么?
谢谢
"@Fred-ii- Yeah everyone is right, I am getting denied permission...any idea how I can fix this? P.S. that error reporting is amazing, it will really help me thanks for that! – BigRabbit"
在取消链接之前对文件使用 chmod:
if (file_exists($oldPicture)) {
// last resort setting
// chmod($oldPicture, 0777);
chmod($oldPicture, 0644);
unlink($oldPicture);
echo 'Deleted old image';
}
else {
echo 'Image file does not exist';
}
不得已的设置是使用 0777
,如注释代码中所示。
"How would I use var_dump() to check folder/file permissions?"
- 这不是检查权限,而是检查通过该变量传递的内容。
即:var_dump($oldPicture);
if (file_exists($oldPicture)) {
var_dump($oldPicture);
// last resort setting
// chmod($oldPicture, 0777);
chmod($oldPicture, 0644);
unlink($oldPicture);
echo 'Deleted old image';
}
else {
echo 'Image file does not exist';
}
将 error reporting 添加到您的文件的顶部,这将有助于查找错误。
<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
// rest of your code
旁注:错误报告只能在试运行中进行,绝不能在生产中进行。
function deleteDrFiles($path) {
if (is_dir($path)) {
array_map(function($value) {
$this->deleteDrFiles($value);
rmdir($value);
},glob($path . '/*', GLOB_ONLYDIR));
array_map('unlink', glob($path."/*"));
}
}
像这样使用函数
deleteDrFiles('../../uploads/img');
我正在尝试使用 unlink()
函数从目录中删除图像。
if (file_exists($oldPicture)) {
unlink($oldPicture);
echo 'Deleted old image';
}
else {
echo 'Image file does not exist';
}
$oldPicture
的值为 ../images/50/56/picture.jpg
。
下面的代码块运行没有任何错误,但是当我检查目录时图像仍然存在。
我是不是做错了什么?
谢谢
"@Fred-ii- Yeah everyone is right, I am getting denied permission...any idea how I can fix this? P.S. that error reporting is amazing, it will really help me thanks for that! – BigRabbit"
在取消链接之前对文件使用 chmod:
if (file_exists($oldPicture)) {
// last resort setting
// chmod($oldPicture, 0777);
chmod($oldPicture, 0644);
unlink($oldPicture);
echo 'Deleted old image';
}
else {
echo 'Image file does not exist';
}
不得已的设置是使用 0777
,如注释代码中所示。
"How would I use var_dump() to check folder/file permissions?"
- 这不是检查权限,而是检查通过该变量传递的内容。
即:var_dump($oldPicture);
if (file_exists($oldPicture)) {
var_dump($oldPicture);
// last resort setting
// chmod($oldPicture, 0777);
chmod($oldPicture, 0644);
unlink($oldPicture);
echo 'Deleted old image';
}
else {
echo 'Image file does not exist';
}
将 error reporting 添加到您的文件的顶部,这将有助于查找错误。
<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
// rest of your code
旁注:错误报告只能在试运行中进行,绝不能在生产中进行。
function deleteDrFiles($path) {
if (is_dir($path)) {
array_map(function($value) {
$this->deleteDrFiles($value);
rmdir($value);
},glob($path . '/*', GLOB_ONLYDIR));
array_map('unlink', glob($path."/*"));
}
}
像这样使用函数
deleteDrFiles('../../uploads/img');