我正在尝试通过silverlight应用程序将文件ftp到服务器。在服务器文件系统上上传文件的位置,存在于Web服务器的沙箱区域之外。在这种情况下,Web服务器根目录位于“C:\ test \ www \”,上载文件的位置将存在于“C:\ User \ Uploads”。在这个场景中我不确定Http POST是否会起作用(不是那个使用Web服务器根目录)。我只需要将用户选择的文件上传到沙箱外可能存在的其他位置。对于silverlight,我认为套接字是我的最后选择,基于Silverlight的有限端口范围是4502-4532。我可以使用WebClient和Http POST吗?我可以通过silverlight或javascript进行ftp连接吗?
答案 0 :(得分:2)
这是一个有趣的场景,因为听起来你在同一台机器(客户端和服务器)上都是这样做的。我正在回答模糊的原始问题,并希望有更多的数据来帮助解决这个问题。
Silverlight不支持FTP上传,但是通过HTTP数据流上传文件的概念。
如果要从客户端计算机上传到服务器的HTTP上传:您可以使用Silverlight 2和3中的OpenFileDialog control来读取该数据,然后使用WebClient上传它。
如果您想从Web服务器可以发送的内容下载到客户端计算机,那么您需要使用Silverlight 3或更新版本,其中包含SaveFileDialog control。
所有Silverlight文件对话框都需要用户启动的操作才能使其正常工作,并且出于安全考虑,用户需要选择文件名。
希望这有帮助!
答案 1 :(得分:0)
假设您的服务器是基于ASP.NET的,我会在.ashx处理程序中使用简单的WebClient POST。让处理程序将帖子的主体写入“C:\ User \ Uploads”中的文件。
答案 2 :(得分:0)
只要ftp服务器与silverlight应用程序位于同一主机上,您就可以使用套接字并编写自己的ftp客户端代码,这不是很难,而且还有很多例子。
答案 3 :(得分:0)
与此同时,将其命名为Silverlight 5,套接字得到更新:ClientAccessPolicy.xml
端口范围得到提升,并且浏览器内升级信任模式可用。
因此我创建了sharpLightFtp以启用基本Ftp。