Я хотел бы загрузить файл на сервер из моего локального. Я пробовал следующий код, но он дает некоторую ошибку. Пожалуйста, помогите мне решить
<?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 и 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 получает локальный размер частичного файла при загрузке
Поместите этот LOC выше ftp_put(). Возможно, вам придется назначить режим загрузки пассивным, чтобы загрузить файл.
ftp_pasv($connection, true);
Это похоже на то, что вы (или, скорее, ваш скрипт) не имеете необходимых прав доступа для создания файла. Убедитесь, что каталог принадлежит пользователю, выполняющему сценарий. Вам может потребоваться предоставить определенные разрешения для каталога загрузки (в отношении вашего скрипта) с помощью команды chmod
.
Многие люди расскажут вам использовать chmod 777 directoryname
или chmod 755 directoryname
чтобы позволить скрипту создавать и редактировать файлы. Однако это может вызвать серьезную проблему безопасности, поскольку она позволяет всем пользователям получать доступ и редактировать файлы в каталоге.
$ Dest = "/главная/корень/веб/цена-War/";
Вам нужно указать имя файла.
$ Dest = "/главная/корень/веб/цена-War/sample.txt"