我想从本地上传文件到服务器。我试过以下代码,但它给出了一些错误。请帮我解决
<?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
答案 0 :(得分:0)
这看起来像您(或者说您的脚本)没有创建文件所需的访问权限。检查该目录是否由执行该脚本的用户所有。您可能需要使用chmod
命令为上载目录(关于脚本)授予特定权限。
很多人会告诉您使用chmod 777 directoryname
或chmod 755 directoryname
来允许脚本创建和编辑文件。但是,这可能会带来严重的安全问题,因为它允许所有用户访问和编辑目录中的文件。
答案 1 :(得分:0)
$ DEST = “/家/根/网络/股价战争/”;
您需要设置文件名。
$ DEST = “/家/根/ WEB /价格战/ sample.txt的”
答案 2 :(得分:0)
将此LOC置于ftp_put()之上。 您可能必须将上传模式指定为被动模式才能上传文件。
ftp_pasv($connection, true);
答案 3 :(得分: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 get local partial file size while downloading