我正在尝试使用 php 将文件(docx、pdf)从一台服务器(源)复制到另一台服务器(目标)。下面是我的代码。
//Copy attachment
$fromdir = 'https://website.com/attachments/resume.docx';
$newFileFullPath = '/path_to_dir/resume.docx';
echo $fromdir." ^ ".$newFileFullPath;
if(copy($fromdir, $newFileFullPath)){
echo "Success";
}else{
echo "Error : File not uploaded to remote server.";
}
当我从目标服务器运行上述内容时,它会抛出以下消息:
Warning: copy(https://website.com/attachments/resume.docx): failed to open stream: HTTP request failed! in /home/public_html/test1.php on line 13
Error : File not uploaded to remote server.
我在服务器中启用了“allow_url_fopen”和“allow_url_include”。但文件不会被复制。
我该如何解决这个问题?
提前致谢
答案 0 :(得分:0)
copy() 函数只能在本地机器上复制文件。
理论上您可以在服务器上挂载网络驱动器,然后使用 copy()
(以挂载的网络驱动器作为目标),但更直接的方法是使用允许复制文件的协议,例如 SSH /SCP 或 FTP。
为了复制 SCP,ssh2
PECL 扩展中有一个函数 ssh2_scp_send()。
对于 FTP,您可以使用内置函数 ftp_put()。
两个函数的示例代码在链接的文档中。