以下是我上传文件到其他服务器的代码,
$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)
,我知道这只显示当前服务器的详细信息,但是如何获取上传服务器(其他服务器)的根目录完整文件路径。任何帮助表示赞赏...
答案 0 :(得分: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 :(得分:1)
没有神奇的方法可以找到上传到FTP服务器的文件的HTTP URL,这会碰巧与HTTP服务器共享文件存储。
这是FTP和HTTP服务器的配置问题;它们如何将虚拟HTTP和FTP路径映射到实际文件系统路径和从实际文件系统路径映射。
映射可以是完全虚拟和不确定的。
话虽如此,大多数网络托管在FTP和HTTP上都有一些根,从那里映射是确定性的。
如果您连接到FTP,您通常位于HTTP主机的根文件夹中,或者位于其下方(会有一个映射到HTTP根目录的子文件夹,如httpdocs
或www
)。
如果FTP帐户被chrooted,根文件夹将是/
(或/httpdocs
等)。
如果您拥有自己的域(www.example.com
),则/index.html
之类的FTP路径会映射到https://www.example.com/index.html
。
这是最简单的案例。这可能是一种更复杂的方式。但那是我们无法帮助你的。这对您的网络托管服务提供商和/或管理员来说是一个问题。