Ниже мой код для загрузки файла на другой сервер,
$ftp_server="host";
$ftp_user_name="";
$ftp_user_pass="";
$file = "referesh.php";//tobe uploaded
$name = "diff_adtaggeneration";
$remote_file = $name."/referesh.php";
// set up basic connection
$conn_id = ftp_connect($ftp_server);
// login with username and password
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);
$res = ftp_rawlist($conn_id, $name);
//print_r($_SERVER);exit;
if(count($res) > 0)
{
ftp_put($conn_id, $remote_file, $file, FTP_ASCII);
}
else
{
ftp_mkdir($conn_id, $name);
ftp_put($conn_id, $remote_file, $file, FTP_ASCII);
}
ftp_close($conn_id);
Приведенный выше код работает отлично, файл успешно загружен на другой сервер, новое имя папки ‘diff_adtaggeneration’ создаст в корневом каталоге каталога и файл будет загружен в эту папку, и мне нужно получить путь к загруженному файлу ..! я использую print_r($_SERVER)
Я знаю, что это показывает только текущие сведения о сервере, но как получить полный путь к корневому каталогу файла загруженного сервера (другой сервер). Любая помощь приветствуется …
Не существует волшебного способа узнать URL-адрес HTTP файла, загруженного на FTP-сервер, который используется для совместного использования файлового хранилища с HTTP-сервером.
Это вопрос настройки как FTP, так и HTTP серверов; как они сопоставляют виртуальные пути HTTP и FTP с фактическими путями файловой системы.
Отображение может быть полностью виртуальным и недетерминированным.
Тем не менее, большинство веб-хостингов имеют некоторый корень как на FTP, так и на HTTP, откуда отображение является детерминистическим.
Если вы подключаетесь к FTP, вы обычно попадаете в корневую папку хостинга HTTP или сразу под ним (там может быть подпапка, например httpdocs
или же www
который отображается в корень HTTP).
Если учетная запись FTP является chroot, корневая папка будет /
(или же /httpdocs
, так далее).
Если у вас есть свой домен (www.example.com
), то путь FTP вроде /index.html
карты для https://www.example.com/index.html
,
Это самый простой случай. Это может быть намного сложнее. Но с этим мы не можем вам помочь. Это вопрос к вашему хостинг-провайдеру и / или администратору.
Используя ftp_pwd, вы можете достичь такого уровня. Но будет относительно (может быть public_html). Если вы хотите получить доступ к файлу с помощью http, добавьте файл в каталог http.
$ftp_server="host";
$ftp_user_name="";
$ftp_user_pass="";
$file = "referesh.php";//tobe uploaded
$name = "diff_adtaggeneration";
$remote_file = $name."/referesh.php";
// set up basic connection
$conn_id = ftp_connect($ftp_server);
// login with username and password
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);
$res = ftp_rawlist($conn_id, $name);
//print_r($_SERVER);exit;
if(count($res) > 0)
{
ftp_put($conn_id, $remote_file, $file, FTP_ASCII);
}
else
{
ftp_mkdir($conn_id, $name);
ftp_put($conn_id, $remote_file, $file, FTP_ASCII);
}
$remotePath = ftp_pwd($conn_id)."/".$remote_file; ///public_html/name/refresh.php
ftp_close($conn_id);