2012-03-16 46 views
1

我的感覺是,這是一個相當愚蠢的問題,因爲該錯誤信息是如此簡單(又那麼神祕對我來說)上的FTP磁盤空間(?):FTP_DELETE():警告,因爲

「PHP警告:ftp_delete():從256000.00MB使用70077.83MB」。

看來,該文件的刪除仍然發生。 我在這裏沒有看到問題。刪除文件時磁盤空間永遠不會出現問題,對吧? 我甚至不確定這些尺寸是指什麼。被刪除的文件大小約爲420MB。 谷歌搜索沒有幫助我。短語「ftp_delete():Used」沒有返回任何結果。

編輯:ftp_delete()返回false。

請賜教。

+0

實際上,一些ftp服務器會阻止你在超過配額時刪除。愚蠢的功能,因爲你*可以*覆蓋一個空的文件來釋放空間,但正如你所看到的消息可能是有道理的。除此之外,我認爲只要ftpd發送消息就會顯示該消息。 – ThiefMaster 2012-03-16 08:26:41

+0

這看起來更像是你的PHP實例的內存警告,而不是來自ftp_delete的錯誤代碼。這有可能嗎? – 2012-03-16 08:26:42

+0

我見過內存錯誤。他們就像「致命錯誤:允許的內存大小16777216字節用盡」 – Leif 2012-03-16 08:38:31

回答

2

以下是有關PHP源(/ext/ftp/ftp.c):

int 
ftp_delete(ftpbuf_t *ftp, const char *path) 
{ 
    if (ftp == NULL) { 
     return 0; 
    } 
    if (!ftp_putcmd(ftp, "DELE", path)) { 
     return 0; 
    } 
    if (!ftp_getresp(ftp) || ftp->resp != 250) { 
     return 0; 
    } 

    return 1; 
} 

由於被命令執行成功,一個合理的解釋是,服務器(在2XX範圍雖然依舊)返回一個code other than 250。爲了解決這個謎題,你可能需要手動連接一個FTP客戶端,看看究竟返回了什麼。

+0

+1這個分析。 – Leif 2012-03-16 08:37:23

+0

它返回「250 DELE命令成功」。也許情況不同。 – Leif 2012-03-16 08:57:30

+1

@Leif:如果要找到答案,您肯定需要首先根據需要重新制作這種可重複的圖案。 – Jon 2012-03-16 09:01:35