将文件上传到远程服务器(PHP)

时间:2010-02-01 15:40:19

标签: php

我有一个场景,我在一台服务器上有一个页面,提示用户上传文件。我需要将此文件上载到具有更大存储设施的其他服务器。然后,我需要获取文件现在驻留在发送回原始页面的服务器上的绝对路径。

文件大小约为15mb,因此它们不是小文件,如果可能的话我想避免双重上传(上传到服务器,然后推送到远程服务器)。

对此表示赞赏。

3 个答案:

答案 0 :(得分:3)

如果远程服务器也作为Web服务器运行,您可以创建上载表单并将提交操作转到另一台服务器。这样做的缺点是某些浏览器会将此视为潜在的安全漏洞,并在显示页面时警告用户,但您可以通过在主Web服务器中创建指向文件服务器的反向代理条目来解决此问题。

答案 1 :(得分:2)

您可以将文件直接上传到存储服务器,在隐藏表单中指定唯一键,如:

<form action="http://mystorage.com/upload" method="post">
    <input type="file" name="myfile" />
    <input type="hidden" name="key" value="asdf1234sadfasfd34565xx" />
</form>

然后只需从存储服务器向主服务器发送RESTful请求,说明唯一密钥和绝对路径...或者在主服务器需要知道文件时“询问”存储服务器来获取绝对路径位置......前方无限可能!

答案 2 :(得分:0)

如果可以从网络访问第二台服务器,那么只需将html表单发布到存储服务器,然后重定向到第一台Web服务器。在重定向期间,您可以通过GET查询字符串传递其他变量。