2010-02-01 117 views
1

我有一个场景,我在一台服务器上有一个提示用户上传文件的页面。我需要将此文件上传到具有更大存储设备的不同服务器。然后,我需要获取文件现在驻留在服务器上发回原始页面的绝对路径。将文件上传到远程服务器(PHP)

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

这方面的任何方向表示赞赏。

回答

3

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

+0

鉴于大文件大小有反正通过进度条给用户反馈中上传?或者是我将要获得的最佳旋转加载GIF? – BlueVoid 2010-02-01 15:47:47

+0

拥有进度条的最简单方法是使用基于Flash的上传器。像jcUpload或swfUpload。 – 2010-02-01 15:50:22

+0

有没有无闪光的替代品? – BlueVoid 2010-02-01 15:54:53

0

如果可以从Web访问第二台服务器,则只需将HTML表单发布到存储服务器,然后重定向到第一台Web服务器即可。在重定向期间,您可以通过GET查询字符串传回附加变量。

2

你可以直接将文件上传到存储服务器,在隐藏的表单指定一个唯一的密钥,如:

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

然后简单地将存储服务器中一个RESTful请求你的主服务器,说明独特键和绝对路径......或者当主服务器需要知道文件位置时,通过“询问”您的存储服务器来获取绝对路径......前方无限可能!

相关问题