如何在 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 中将上传的文件移动到另一台主机的主要内容,如果未能解决你的问题,请参考以下文章