Thumbs.dbのftp_nb_continue()が失敗する
MoreFTPdで立てたWindows XP上のFTPサーバを実に快適に運用している。
しかしPHPのFTPクライアントでファイル「Thumbs.db」をアップロードしたら、パーミッションがないというエラーでftp_nb_continue()が失敗した。
名称が「Thumbs.db」のファイルはアップロード対象から除外するよう、PHPスクリプトに条件を追加して回避した。
たぶんWindowsでは、サムネールファイルだと内部的に認識されてるファイルにたまたま「Thumbs.db」という名前がついているという形ではなく、「Thumbs.db」という名前だという理由でサムネールファイルであると識別されるしくみになっていて、そのため「Thumbs.db」という名前のファイルは、その作られ方によらず、生成された瞬間にその特殊な意味や属性を付与されるのだろう。
その意味や属性が、なかんずくおそらく隠し属性が、パーミッション不許可とFTP的には解釈されて、アペンドが失敗するのだろう。
ひょっとすると、FTP実装系によってはその解釈が異なるかもしれない。その場合は違った振舞いになるだろう。
だが、FTPクライアントがPHPでなくFileZillaだったらどうかとかまでは試していない。
FTPサーバがMoreFTPd以外だったらどうなのかも知らない。