【问题标题】:Silverlight Ftp UploadSilverlight FTP 上传
【发布时间】:2010-11-10 19:25:11
【问题描述】:

我正在尝试通过 silverlight 应用程序将文件 ftp 到服务器。在服务器文件系统上上传文件的位置存在于 Web 服务器的沙箱区域之外。在这种情况下,Web 服务器根目录存在于“C:\test\www\”,上传文件的位置将存在于“C:\User\Uploads”。在这个场景中,我不确定 Http POST 是否有效(不使用 Web 服务器根目录)。我只需要将用户选择的文件上传到沙盒之外可能存在的不同位置。有了silverlight,我认为套接字是我最后的选择,因为silverlight 的端口范围是4502-4532。我可以使用 WebClient 和 Http POST 来做到这一点吗?我可以通过 silverlight 或 javascript 建立 ftp 连接吗?

【问题讨论】:

  • 你没有指定你的服务器技术。
  • 服务器技术使用的是 apache 2.2
  • 你能考虑澄清你原来的问题吗?例如,Silverlight 不支持 FTP 上传本身,但上传文件的概念是通过 HTTP 数据流。我也无法判断这是否都在同一台机器上。

标签: silverlight apache ftp


【解决方案1】:

假设您的服务器是基于 ASP.NET 的,我将使用简单的 WebClient POST 到 .ashx 处理程序中。让处理程序将帖子正文写入“C:\User\Uploads”中的文件。

【讨论】:

  • 服务器是apache 2.2。你的建议将适用于 asp.net,但想知道是否有另一种方法不使用 asp.net
【解决方案2】:

这是一个有趣的场景,因为听起来您是在同一台机器(客户端和服务器)上执行所有这些操作。我正在回答含糊不清的原始问题,并且希望获得更多数据来帮助完全回答这个问题。

Silverlight 不支持 FTP 上传本身,但上传文件的概念是通过 HTTP 数据流。

如果您想从客户端计算机向服务器进行 HTTP 上传:您可以使用 Silverlight 2 和 3 中的OpenFileDialog control 读取该数据,然后使用 WebClient 上传它。

如果您想从 Web 服务器可以发送的内容下载到客户端计算机,那么您需要使用 Silverlight 3 或更高版本,它具有 SaveFileDialog control。

所有 Silverlight 文件对话框都需要用户启动的操作才能工作、发挥作用,并且出于安全目的,用户需要选择文件名。

希望这会有所帮助!

【讨论】:

    【解决方案3】:

    只要 ftp 服务器与 silverlight 应用程序位于同一主机上,您就可以使用套接字并编写自己的 ftp 客户端,这并不难,而且有很多示例。

    【讨论】:

    • Silverlight 确实包含套接字支持。使用 Silverlight 3 时,套接字的端口范围为 4502-4534。这个范围对于我正在实施的整体设计来说太有限了。
    【解决方案4】:

    与此同时,将其命名为 Silverlight 5,Sockets 得到了更新:ClientAccessPolicy.xml 增加了端口范围,并且提供了浏览器内提升信任模式。

    因此我创建了sharpLightFtp 来启用基本的 Ftp。

    【讨论】:

      猜你喜欢
      • 2012-01-22
      • 1970-01-01
      • 2013-05-24
      • 2010-11-17
      • 2010-10-24
      • 2011-08-06
      • 2012-09-11
      • 2012-01-23
      • 1970-01-01
      相关资源
      最近更新 更多