Как получить HTTP URL файла, загруженного на FTP сервер

Ниже мой код для загрузки файла на другой сервер,

$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) Я знаю, что это показывает только текущие сведения о сервере, но как получить полный путь к корневому каталогу файла загруженного сервера (другой сервер). Любая помощь приветствуется …

2

Решение

Не существует волшебного способа узнать 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,

Это самый простой случай. Это может быть намного сложнее. Но с этим мы не можем вам помочь. Это вопрос к вашему хостинг-провайдеру и / или администратору.

1

Другие решения

Используя 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);
1

По вопросам рекламы [email protected]