下载文件时从网络服务器上删除文件

问题描述:

FTP用户同时删除某个文件时会发生什么情况? 我的服务器语言是PHP。 谢谢下载文件时从网络服务器上删除文件

那么作为FTP可能是最常用的,它不是最安全的。当下载/上传,如果你的程序中断或没有得到足够的速度,是的,它可能会导致文件被删除,始终保持备份。

+1

我想他是指如果他通过ftp删除一个文件,而他的网站上的访问者正在下载同一个文件会发生什么情况。 – Endophage 2011-03-15 21:59:24

缓存在Web服务器(内存)中的文件部分不断下载。如果这还不足以满足下载者的需求,那就错误了。

在Windows服务器上,当另一个进程正在使用文件时,无法删除该文件。

在Unix系统上,该文件将被删除,但仅限于试图访问它的任何“新”进程。任何已经打开文件的文件都可以像之前一样读/写。该文件仍然占用磁盘空间,直到其上的所有文件句柄关闭,此时它才真正被删除。所以你的FTP用户仍然可以完成下载。

如果您的目的是强制FTP传输中止,您应该终止FTP进程,这将关闭其打开的文件句柄,允许操作系统完成删除文件。

可能取决于操作系统。您无法删除为了阅读而锁定的文件。 Apache在读取文件时会对文件读取锁定,但我不确定是否在上传完成之前释放锁定。你可能想要检查this - 我知道它是针对数据库的,但它与文件锁定非常相似。您也可以检查this - Apache锁定文件指令部分。