使用PHP和FTP将本地文件上载到远程服务器

时间:2013-07-29 11:34:13

标签: php ftp

我一直在尝试制作一个可以上传大文件的系统,最初我使用的是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以及远程服务器上同一文件夹中的图片。当我运行此代码时,脚本将文件从一个位置复制到另一个位置。

那么我如何才能将本地计算机上的文件发送到服务器?

提前致谢。

1 个答案:

答案 0 :(得分:3)

使用此功能,您可以将PHP服务器上的文件上传到FTP服务器,实际上并不是您的目标。

创建一个提交到此PHP文件的上传表单。暂时将此文件存储在您的服务器上,然后从那里将其上传到您的FTP服务器。

如果您的尝试确实有效,这将是一个主要的安全问题,因为PHP文件可以访问我本地计算机上的任何文件。