Php 如何获取上传到FTP服务器的文件的HTTP URL

Php 如何获取上传到FTP服务器的文件的HTTP URL,php,http,url,ftp,Php,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);

下面是我上传文件到其他服务器的代码

$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($\u SERVER)
,我知道这只显示当前服务器的详细信息,但如何获取上载服务器(其他服务器)的根目录完整文件路径。感谢您的帮助……

使用ftp,您可以达到这样的水平。但将是相对的(可能是公共的)。如果要使用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); 

使用ftp_pwd,您可以达到这种级别。但将是相对的(可能是公共的)。如果要使用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); 

没有神奇的方法可以找到上传到FTP服务器的文件的HTTP URL,而该文件恰好与HTTP服务器共享一个文件存储

这是FTP和HTTP服务器的配置问题;它们如何将虚拟HTTP和FTP路径映射到实际的文件系统路径,以及如何将虚拟HTTP和FTP路径映射到实际的文件系统路径

映射可以是完全虚拟的和不确定的


话虽如此,大多数web主机在FTP和HTTP上都有一些根,从那里映射是决定性的

如果连接到FTP,通常会在HTTP主机的根文件夹中,或在其正下方(会有一个子文件夹,如映射到HTTP根目录的
httpdocs
www

如果FTP帐户已注册,则根文件夹将为
/
(或
/httpdocs
等)

如果您有自己的域(
www.example.com
),那么像
/index.html
这样的FTP路径将映射到
https://www.example.com/index.html


这是最简单的情况。这可能是一种更复杂的方式。但这是我们帮不了你的。这是您的web主机提供商和/或管理员的问题。

没有神奇的方法可以找到上载到FTP服务器的文件的HTTP URL,而该文件恰好与HTTP服务器共享文件存储

这是FTP和HTTP服务器的配置问题;它们如何将虚拟HTTP和FTP路径映射到实际的文件系统路径,以及如何将虚拟HTTP和FTP路径映射到实际的文件系统路径

映射可以是完全虚拟的和不确定的


话虽如此,大多数web主机在FTP和HTTP上都有一些根,从那里映射是决定性的

如果连接到FTP,通常会在HTTP主机的根文件夹中,或在其正下方(会有一个子文件夹,如映射到HTTP根目录的
httpdocs
www

如果FTP帐户已注册,则根文件夹将为
/
(或
/httpdocs
等)

如果您有自己的域(
www.example.com
),那么像
/index.html
这样的FTP路径将映射到
https://www.example.com/index.html


这是最简单的情况。这可能是一种更复杂的方式。但这是我们帮不了你的。这是您的web主机提供商和/或管理员的问题。

您需要执行类似于
'/var/www/html/'.dirname($remote_file)
的操作,因为您无法从ftp获取绝对路径。请签出,但它可能与ftp根目录相关。服务器可能会也可能不会公开远程目录的真实完整路径,在这种情况下,您只需要知道它。如果文件上载到该服务器,我需要在该服务器上运行该上载文件是否可以运行上载的文件?您所说的“运行”是什么意思?那太模糊了。是否要在浏览器中打开文件(=将浏览器重定向到该服务器和脚本)?您需要执行类似于
'/var/www/html/'.dirname($remote_file)
的操作,因为您无法从ftp获取绝对路径。请签出,但它可能与ftp根目录相关。服务器可能会也可能不会公开远程目录的真实完整路径,在这种情况下,您只需要知道它。如果文件上载到该服务器,我需要在该服务器上运行该上载文件是否可以运行上载的文件?您所说的“运行”是什么意思?那太模糊了。是否要在浏览器中打开文件(=将浏览器重定向到该服务器和脚本)?