使用PHP删除文件的ftp_delete函数不起作用

时间:2014-07-09 02:05:14

标签: php ftp

我正在尝试使用php的ftp_delete函数删除我的ftp服务器上的文件,但是我似乎无法让它工作。

我已按照php手册页ftp_delete上的说明操作,但仍然没有运气。

也许我错过了什么?

在本地测试服务器上使用该文件时,它会显示连接正常,但是当我将文件上传到远程服务器时,我根本无法连接。

我的代码

<?php

// server credentials
$ftp_server = "address.myftpupload.com";
$ftp_username = "Password";
$ftp_userpass = "UserName";

// set up basic connection
$conn_id = ftp_connect($ftp_server) or die("Could not connect to $ftp_server");

// login with username and password
ftp_login($conn_id, $ftp_username, $ftp_userpass);

ftp_pasv($conn_id, true);

//change dir
ftp_chdir($conn_id, "webroot/CundyTech/BassClef/gallery-images/images");

// try to delete $file
$file = "webroot/CundyTech/BassClef/gallery-images/images/metal_textures_silver.jpg";
if (ftp_delete($conn_id, $file)) {
echo "$file deleted successful\n";
} else {
echo "could not delete $file\n";
}

// close the connection
ftp_close($conn_id);


?>

任何帮助都会很棒,甚至只是朝着正确的方向发展。

2 个答案:

答案 0 :(得分:2)

也许这个:

您正在将目录更改为images目录,然后从您要删除的图像目录“webroot / CundyTech / BassClef / gallery-images / images / metal_textures_silver.jpg”

所以我可能错了,但似乎你试图删除:

“根目录/ CundyTech / BassClef /画廊图像/图片/根目录/ CundyTech / BassClef /画廊图像/图片/ metal_textures_silver.jpg”

我认为你只需要:

ftp_delete($conn_id, "metal_textures_silver.jpg");

答案 1 :(得分:0)

实际问题是,因为该文件已经在FTP服务器上,所以它不需要所有登录和凭据

// server credentials
$ftp_server = "address.myftpupload.com";
$ftp_username = "Password";
$ftp_userpass = "UserName";

// set up basic connection
$conn_id = ftp_connect($ftp_server) or die("Could not connect to $ftp_server");

// login with username and password
ftp_login($conn_id, $ftp_username, $ftp_userpass);

ftp_pasv($conn_id, true);

//change dir
ftp_chdir($conn_id, "webroot/CundyTech/BassClef/gallery-images/images");

所以我删除了这个,然后运行其余部分,它完美无缺。

我还从

更改了删除功能
  

php_delete

  

php_unlink

像@ Bob0t建议所以最终解决方案是放置这个php文件;

foreach (glob("*.jpg") as $filename) {
   echo "$filename size " . filesize($filename) . "\n";
   unlink($filename);
}

在我想要删除扩展名“.jpg”的所有文件的目录中。