繁体   English   中英

将本地文件从Webbrowser直接上传到FTP服务器,绕过Web服务器

[英]Upload local file from webbrowser directly to FTP server, bypass the web server

我想将用户上传的文件(从网站<form> )上传到我的FTP服务器,在该服务器中我想绕过该服务器,并希望将该文件直接发送到FTP服务器。 是否可以使用PHP或JavaScript?

在当前情况下,当我使用HTML表单和PHP将文件上传到Apache服务器时,该文件存储在/tmp/目录中,然后可以将其传输到FTP位置。 但这需要两倍的时间进行上传,因为文件首先要上传到Apache服务器,然后再上传到FTP服务器。

云服务器以这种方式运行,可以通过Apache服务器传递文件,并且可以将文件直接发布到云服务器)

我想要这样做,以便我们可以克服HTTP部分,并希望将大文件上传到FTP服务器,而不会受到任何HTTP上传限制。

HTML form标签不支持FTP。


您也不能使用PHP,因为它无法访问本地(从Web浏览器开始)文件。


因此,JavaScript是唯一可能的解决方案。

XMLHttpRequest理论上支持FTP:

不管它的名字是什么, XMLHttpRequest都可以用来检索任何类型的数据,而不仅仅是XML,它还支持HTTP以外的协议(包括fileftp )。

但实际上,事实并非如此。
请参阅对FTP服务器执行跨域XMLHTTPREQUEST的语法是什么公认答案。

因此,实际上,似乎没有任何可用的解决方案。


如果可能,请在FTP服务器主机上运行Web服务器,然后使用Web服务器(HTTP)发送文件。


另一种选择是坚持通过Web服务器进行传输,但是要采用流模式。 将文件发布到Web服务器。 使处理脚本连续读取传入的数据,并将其连续上传到FTP服务器。

您不会节省带宽,但是会节省时间(因为两种传输几乎同时进行)。

可以将ftp_fput与标准输入的句柄一起使用(不要尝试)。

如果不在Web应用程序中使用HTTP协议,则很难将FTP数据(BIGfile)传输到备份服务器。

假设S1-(客户端浏览器),S2-(代码容器服务器),S3-(文件备份服务器),我们希望使用FTP从s1上传2gb文件。

用例图这可以通过“ JavaApplet”完成。 我们可以在Web应用程序中嵌入上载器小程序。 该小程序将在浏览器沙箱中运行。 使用小程序检查ftp的链接示例代码

前提是您必须在浏览器中启用Java。 样例代码

侧面负载的ftp框图

在此处输入图片说明

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM