使用PHP通过FTP将本地文件上传到服务器

问题描述 投票:0回答:4

我想从本地将文件上传到服务器。 我试过下面的代码,但它给出了一些错误。 请帮我解决

<?php 
$server="115.120.147.261";
$ftp_user_name="root";
$ftp_user_pass="3424dd";
$dest="/home/root/web/Price-War/";
$source="/home/root/sample.txt";
$connection = ftp_connect($server);
if($connection)
{
echo "Connection Established";
}
$login = ftp_login($connection, $ftp_user_name, $ftp_user_pass);

if (!$connection || !$login) { die('Connection attempt failed!'); }

$upload = ftp_put($connection, $dest, $source, FTP_ASCII);

if (!$upload) { echo 'FTP upload failed!'; }

ftp_close($connection);
?>

其引发以下错误。

Connection Established
PHP Warning:  ftp_put(): Could not create file. in /home/root/Desktop/upload.php on line 16
php file-upload upload ftp
4个回答
0
投票

看起来您(或您的脚本)没有创建文件所需的访问权限。 检查目录是否由执行脚本的用户所有。 您可能需要使用chmod命令授予上载目录的特定权限(关于脚本)。

很多人会告诉您使用chmod 777 directorynamechmod 755 directoryname来允许脚本创建和编辑文件。 但是,这可能会引起严重的安全问题,因为它允许所有用户访问和编辑目录中的文件。


0
投票

$ dest =“ / home / root / web / Price-War /”;

您需要设置一个文件名。

$ dest =“ / home / root / web / Price-War / sample.txt”


0
投票

将此LOC放在ftp_put()上方。 您可能必须将上传模式指定为被动模式才能上传文件。

ftp_pasv($connection, true);

0
投票

我还使用PHP和FTP,但我不下载而不上传。 我的本地路径必须是文件的绝对路径(完整路径),而我的FTP路径也必须是相对路径。

$ftp_path = "/foldername/filename.txt";
$local_path = "C:\wamp\www\my_website\files\file_to_upload.txt"

获取您的本地路径,如下所示:

$path_to_root   = dirname(__FILE__);
$local_folder   = "\my_website\files\";
$local_full_path= $path_to_root.$local_folder."file_to_upload.txt";

我还使用ftp_nb_get()而不是ftp_get(),因此我可以在下载文件时运行其他代码(例如检查部分下载文件的文件大小)。 在这里看看我的代码:

PHP ftp_nb_get在下载时获取本地部分文件的大小

© www.soinside.com 2019 - 2024. All rights reserved.