FTP将上传文件的大小设置为零

时间:2016-08-27 07:49:44

标签: php ftp

我正在尝试将文件从本地计算机驱动器上传到服务器。

我使用以下代码上传了该文件,但它上传了0字节大小的文件或空白文件。

另外,我没有得到本地文件的所有文件路径。它显示了服务器路径。例如,如果我的本地文件位于D:/abc/abc.txt,则显示/public_html/abc.txt

请帮忙。

<?php
echo "hi";
echo "\n";

$host = '000.000.00.000';
$usr = 'userName';
$pwd = 'password';

$temp =  $_FILES["file"];
$local_file = realpath($_FILES["file"]["name"]["r"]);

$ftp_path = "/public_html/Download/".$_POST['file'];

echo "This is file to Upload :";
echo "\n";

print($local_file);

// connect to FTP server (port 21)
$conn_id = ftp_connect($host, 21) or die ("Cannot connect to host");

// send access parameters
ftp_login($conn_id, $usr, $pwd) or die("Cannot login");

// perform file upload
print ("This is ftp path : ");
print($ftp_path);
print("New line : ");

$upload = ftp_put($conn_id,  $ftp_path, $local_file , FTP_ASCII , 0);

print (!$upload) ? 'Cannot upload' : 'Upload complete';
print ("\n") ;

ftp_close($conn_id);
?>

1 个答案:

答案 0 :(得分:2)

$_FILES['file']['name']是客户端计算机上的文件名,而不是服务器。上传将放入服务器上的$_FILES['file']['tmp_name'],因此这是您应该使用FTP发送的文件。

您可以在设置$_FILES['file']['name']时使用$ftp_path,以便目标文件与用户的原始文件具有相同的名称。 $_POST['file']不存在 - 文件上传仅放在$_FILES中,而不是$_POST