首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ftp上传是如何在PHP中工作的?

问ftp上传是如何在PHP中工作的?
EN

Stack Overflow用户
提问于 2011-07-01 10:24:57
回答 3查看 820关注 0票数 2

我使用http://phpseclib.sourceforge.net/库来使用ftp.Now上传文件--我无法理解这个“ftp如何在上传的同时处理文件数据”的概念。

所发生的是:

我用submit button.When创建了文件上传表单,我选择了该文件并单击submit加载器starts.But,没有进入server.My的文件期望是,当我单击submit按钮时,它会读取文件中的数据并根据phpseclib中提到的数据包大小将数据推入服务器。

有人解释了我误解了什么,或者当加载器在浏览器中显示的时候发生了什么?

编辑:

文件上传没有issues.Only,这就是为什么它在上传时调用了so late.So,同时将文件移动到服务器上。如果是的话,我为什么要去上传ftp。

我用100 my测试了files.Files是uploaded.What,我的期望是为什么它没有在单击submit按钮后立即启动?

EN

回答 3

Stack Overflow用户

发布于 2011-07-01 10:48:01

你的表格有enctype="multipart/form-data"吗?

在html中,表单需要enctype="multipart/form-data"属性来上传文件。表单通常如下所示:

代码语言:javascript
复制
<form id="form_id" enctype="multipart/form-data" method="POST">
<input type="file" name="file" />
<input type="submit" name="submit" value="submit" />
</form>
票数 2
EN

Stack Overflow用户

发布于 2011-07-05 06:48:09

我很困惑。你能贴出相关的PHP代码吗

  1. 处理上传文件的POST请求
  2. 如何调用FTP库来启动FTP传输

我认为正在发生的事情是:您的用户将一个文件上传到您的FTP服务器,然后您从您的FTP服务器启动FTP到FTP服务器。这里有两个上传;一个通过HTTP,一个通过FTP。在HTTP上传完成之前,您不会看到FTP上载开始。

票数 1
EN

Stack Overflow用户

发布于 2011-07-10 11:59:47

很好的问题,你在这里处理两个事务。第一个事务将文件放置到web服务器上的位置。它通过POST方法使用HTTP作为传输(也可能是此事务中最慢的部分)。

当初始客户端上传完成后,文件将存储在您的web服务器上,在那里可以传输S/FTP脚本。

读取下面的注释,您想要的是使用FTP从客户端传输文件,这是一个完全可行的解决方案。但是,这是您实现的当前流程。

您的进程当前.

  1. 用户A使用宿主的网页通过HTTP上传文件。
  2. 用户A在关闭浏览器之前等待文件上传完成。
  3. 文件保存在上载脚本中指定的目录路径中。
  4. S/FTP脚本读取文件并启动与外部S/FTP服务器的连接,并开始将文件传输到该服务器。

如果步骤4是多余的,则根本不需要S/FTP脚本,除非您希望从客户端通过S/FTP进行传输。

你的意图.

  1. 用户A使用基于浏览器的S/FTP客户端通过S/FTP上传文件。
  2. 用户A等待文件上传完成。
  3. 文件保存在上载脚本中指定的目录路径中。

您提到的注释中的可能实现Flex解决方案。以下是我发现的一些可能有帮助的资源。

基于Flex FTP的客户端

栈交换中基于Flex的FTP客户端问题

在服务器端上用PHPSecLib实现一个S/FTP客户端。

Gist上的SFTP.php (用于行号和高亮显示)

原PHPSec SFTP.php

我通过Sourceforge网站将原件复制到Gist,这样您就可以使用行号作为向导。SFTP库需要一个完整的文件路径(即/tmp/somefilehere )或一个有效的PHP文件资源。例如,与fopen $fp = @fopen('/tmp/somefilehere', 'rb');返回的代码一样,参见gist上的第1132行。

一旦通过认证,与最初的上传相比,传输将非常快。您的服务器可能位于具有更多带宽的数据中心,因此文件传输要快得多。

您可能希望通过web浏览器启动S/FTP事务。这是可能的,只是不可能与传统的脚本语言,如PHP / Python或Ruby。您可以使用Flash、Flex或Java以及一些Windows技术在浏览器中使用S/FTP。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6546719

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档