在php中将文件从一台服务器复制到另一台服务器

时间:2021-03-25 18:03:39

标签: php copy file-copying

我正在尝试使用 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”。但文件不会被复制。

我该如何解决这个问题?

提前致谢

1 个答案:

答案 0 :(得分:0)

copy() 函数只能在本地机器上复制文件。

理论上您可以在服务器上挂载网络驱动器,然后使用 copy()(以挂载的网络驱动器作为目标),但更直接的方法是使用允许复制文件的协议,例如 SSH /SCP 或 FTP。

为了复制 SCP,ssh2 PECL 扩展中有一个函数 ssh2_scp_send()

对于 FTP,您可以使用内置函数 ftp_put()

两个函数的示例代码在链接的文档中。