最近在研究Silverlight中,突然想到如何进行文件上传的问题
网上找了很多资料后得出的一点结论
搜索Silverlight 上传 出现得最多的是 代震军BLOG - 博客园 里的文章
看过他的文章后,发现他说提到的上传是一个开源项目的,很好,但是很复杂,也不适合初学者学习。看了以后一头雾水是很正常的。
之后,自己又了解了其他方面的上传资料
发现 Silverlight 上传可以通过两种途径
1 使用 Webclient 类的 OpenWrite 方法,将文件流包含在请求中传递到接受该请求的Aspx或Ashx上,然后服务器接收到请求流后,将InputStream文件流保存到服务器上。
2 使用WCF或者Webservice ,Silverlight获取文件流后,将其整个或者分块的读取到一个字节数组,然后将字节数组作为参数 调用服务的方法,当然 服务的方法也要定义参数来接收字节数组,然后写入到服务器文件流中保存,如果采用分块读取字节数组就自然的形成了分块上传的模式,当然,使用分块上传,应该要将每次读取到的字节数组保存成小块的临时文件,最后一块上传完成后,WCF或WS服务再进行组装成最终文件保存。
由于长期开发ASP.NET,突然考虑到上传还一下子摸不到头脑,铭记,Silverlight是客户端的,利用服务(WCF ,WS) 就可以将客户端和服务器端密切的联系起来,以往的ASP.NET,客户端只能通过HTTP请求来与服务器端通信,但是SILVERLIGHT就更加灵活多样了。