我使用 FileZilla 进行 FTP 操作已经有一段时间了,虽然它几乎一直运行良好,但我发现了一个主要缺陷:
如果我上传了一个已更改的文件,而我的网站的用户恰好在文件上传的同时使用了该文件(在包含文件中更常见),那么用户就会收到一个 PHP 错误,原因是unexpected $end
文件在上传了一半时正在被读取。
FileZilla 中是否有一个选项可以在文件上传时锁定它,从而使上传过程自动化,还是我运气不佳,又得重新寻找一个好的 FTP 程序?
答案1
这是一个普遍的问题。FTP 协议不支持任何标准文件锁定机制。
可以通过将文件上传到临时文件名来解决这个问题;并且在上传完成后将其重命名为最终名称。
如果您选择 SFTP 协议,WinSCP SFTP/FTP 客户端可以透明地对任何上传进行此操作。遗憾的是,它仅支持 SFTP 协议,不支持 FTP 协议。请参阅自动恢复/传输到临时文件名在 WinSCP 文档中。(我是 WinSCP 的作者)
FTP 服务器也可能支持此功能。例如 ProFTPD 有HiddenStores
指示以此目的。