我一直在尝试制作一个可以上传大文件的系统,最初我使用的是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
以及远程服务器上同一文件夹中的图片。当我运行此代码时,脚本将文件从一个位置复制到另一个位置。
那么我如何才能将本地计算机上的文件发送到服务器?
提前致谢。
答案 0 :(得分:3)
使用此功能,您可以将PHP服务器上的文件上传到FTP服务器,实际上并不是您的目标。
创建一个提交到此PHP文件的上传表单。暂时将此文件存储在您的服务器上,然后从那里将其上传到您的FTP服务器。
如果您的尝试确实有效,这将是一个主要的安全问题,因为PHP文件可以访问我本地计算机上的任何文件。