1

私は大きなファイルをアップロードできるシステムを作ろうとしてきました。もともと HTTP を使用していましたが、これには変更が必要な設定に関する多くの問題がありました。だから私はFTPでやってみようと思った。

今、私は PHP で ftp 接続を持っており、それは動作します。フォルダやファイルを表示したり、ディレクトリを作成したりできますが、ローカル ファイルを取得してアップロードする方法がわかりません。

PHPマニュアルやnettutsで見つけたチュートリアルなど、多くの情報やチュートリアルを読んでいますが、苦労しています。チュートリアルでは、ローカル ファイルをアップロードできると書かれていますが、何か不足しているに違いありません。

私が使用しているアップロード方法は次のとおりです。

public function uploadFile ($fileFrom, $fileTo)
    {
        // *** Set the transfer mode
        $asciiArray = array('txt', 'csv');
        $extension = end(explode('.', $fileFrom));
        if (in_array($extension, $asciiArray)) 
            $mode = FTP_ASCII;      
        else 
            $mode = FTP_BINARY;

        // *** Upload the file
        $upload = ftp_put($this->connectionId, $fileTo, $fileFrom, $mode);

        // *** Check upload status
        if (!$upload) {

                $this->logMessage('FTP upload has failed!');
                return false;

            } else {
                $this->logMessage('Uploaded "' . $fileFrom . '" as "' . $fileTo);
                return true;
            }
    }

ファイルをアップロードしようとするとき、私はこれを使用します:

$fileFrom = 'c:\test_pic.jpg';

$fileTo = $dir . '/test_pic.jpg';

$ftpObj -> uploadFile($fileFrom, $fileTo);

これにより、自分のマシンから c: に保存されているファイルが取得され、宛先にアップロードされると思いましたが、失敗します (理由はわかりません)。だから私はそれを少し変更$fileFrom = test_pic.jpgし、リモートサーバーの同じフォルダーにある画像を変更しました。このコードを実行すると、スクリプトはファイルをある場所から別の場所にコピーしました。

では、ローカル マシンからサーバーにファイルを送信するにはどうすればよいでしょうか。

前もって感謝します。

4

1 に答える 1