使用PHP通过基于Web的ftp上传文件

时间:2011-05-25 13:00:17

标签: php ftp

再次,我需要一些非常感谢专家的帮助:) 我正在尝试使用PHP的FTP功能通过Web表单将文件上传到服务器,我花了一天时间用谷歌搜索一个简单的教程,但大多数人似乎期望对该过程有一定程度的了解。所以,我找到了一个我相信会为我做这个工作的例子,但我坦率地不明白如何编写ftp路径?

这是完整的脚本(我在Tech Republic找到了它)

<?
// get FTP accessparameters
$host = "<URL of site>";
$user = "user@<URL of site>";
$pass = "<PASSWORD>";
$destDir= "www/uploads/files/";
$workDir= "/usr/local/temp"; // define this as perlocal system
// get temporary file namefor the uploaded file
$tmpName= basename($_FILES['ufile']['tmp_name']);
// copy uploaded file intocurrent directory
move_uploaded_file($_FILES['ufile']['tmp_name'], $workDir."/".$tmpName) or die("Cannot move uploaded file toworking directory");
// open connection
$conn= ftp_connect($host) or die ("Cannot initiate connection tohost");
// send access parameters
ftp_login($conn,$user, $pass) or die("Cannot login");
// perform file upload
$upload = ftp_put($conn, $destDir."/".$_FILES['ufile']['name'], $workDir."/".$tmpName, FTP_BINARY);
// check upload status
// display message
if (!$upload) {
    echo "Cannotupload";
} else {
    echo "Uploadcomplete";
}
// close the FTP stream
ftp_close($conn);
// delete local copy ofuploaded file
unlink($workDir."/".$tmpName) or die("Cannot delete uploaded filefrom working directory -- manual deletion recommended");
?>

目前它失败了“无法将上传的文件移动到工作目录” - 所以我假设路径不正确。 当这个特定用户通过ftp连接时,他们的主目录是“files”。

我很欣赏这个建议。

以下答案

我有它的工作。 因为用户主目录是“文件”,所以在这个目录中需要另外两个名为“file”和“temp”的目录。 我将上面的代码更改为: -

$destDir= "files";
$workDir= "temp";

并找到了一个ftp连接字符串向后工作的示例,以便代码生成正确的格式。 当你知道怎么做时很容易!

1 个答案:

答案 0 :(得分:0)

我有它的工作。因为用户主目录是“文件”,所以在这个目录中需要另外两个名为“file”和“temp”的目录,我将上面的代码改为: -

$destDir= "files";
$workDir= "temp";

并找到了一个ftp连接字符串向后工作的示例,以便代码生成正确的格式。当你知道怎么做时很容易!