如何在 PHP 中将上传的文件移动到另一台主机

Posted

技术标签:

【中文标题】如何在 PHP 中将上传的文件移动到另一台主机【英文标题】:How to move Uploaded file to another host in Php 【发布时间】:2013-06-01 22:57:57 【问题描述】:

谁能帮我实现如何将上传的文件从一台服务器移动到另一台服务器

我不是在谈论 move_uploaded_file() 函数。

例如,

如果图片是从http://example.com上传的

如何将其移至http://image.example.com

有可能吗?不是通过发送另一个帖子或提出请求?

【问题讨论】:

在子域还是不同域? 您可以使用 php 函数将文件上传到同一主机,仅表示子域。 谢谢大家,我现在正在使用 curl 库 【参考方案1】:

获取上传的文件,将其移动到一个临时位置,然后将其推送到您喜欢的任何 FTP-Acount。

$tempName = tempnam(sys_get_temp_dir(), 'upload');
move_uploaded_file($_FILES["file"]["tmpname"], $tempName);

$handle = fopen("ftp://user:password@example.com/somefile.txt", "w");
fwrite($handle, file_get_contents($uploadedFile));
fclose($handle);
unlink($tempName);

实际上,您甚至不需要带有move_uploaded_file 的部分。获取上传的文件并将其内容写入以fopen 打开的文件就足够了。有关使用 fopen 打开 URL 的更多信息,请查看 php-documentation。有关上传文件的更多信息,请查看PHP-Manual 的File-Upload-Section

[编辑]在代码示例中添加了file_get_contents

[编辑]更短的示例

$handle = fopen("ftp://user:password@example.com/somefile.txt", "w");
fwrite($handle, file_get_contents($_FILES["file"]["tmpname"]);
fclose($handle);
// As the uploaded file has not been moved from the temporary folder 
// it will be deleted from the server the moment the script is finished.
// So no cleaning up is required here.

【讨论】:

从来没有见过这样的东西,但显然他只是打开一个文件,但不使用文件的传递,而是一个作为他的 ftp 连接的 url,最后是打开文件的经典用法。没有什么可以解释的,我认为阅读一些 fopen 文档你会发现一些解释......

以上是关于如何在 PHP 中将上传的文件移动到另一台主机的主要内容,如果未能解决你的问题,请参考以下文章

PHP 通过CURL上传文件到另一台服务器

如何使用 ASP.NET 将文件从一台机器移动到另一台机器?

从一台主机到另一台主机的共享库路径不一致

如何将lvm卷移动到另一台服务器中

用php如何把一些文件和图片上传到另一指定的服务器

如何在PHP中将所有文件和文件夹从一个目录移动到另一个目录?