PHP 5.2.17 が実行されているサーバーで、組み込みの ftp ラッパーを使用してファイルをアップロードする関数を使用すると、サーバー上に空のファイルが作成されます。
file_put_contents()
正確なバイト数を返しますcopy()
も true で返します
どちらもファイルを作成しますが、空です。
バイナリ モードと ascii モードの両方で FTP 拡張から試してみると、ftp_put()
うまく機能します。
PHP 5.3.10 を搭載した私のワークステーションでは、何とかラッパーでも動作します。
コード内:
$source = '/tmp/testfile';
$target = 'ftp://user:pass@example.com/testfile';
copy($source, $target);
エラーや警告は表示されませんが、サーバーに空のファイルが残ります。
$source = '/tmp/testfile';
$target = 'testfile';
$ftp = ftp_connect('example.com');
ftp_login($ftp, 'user', 'pass');
ftp_put($ftp, $target, $source, FTP_ASCII);
ftp_close($ftp);
あらゆる点で機能します。
提案をありがとう!