使用WebDAV来上传和下载文件
上传和下载文件,最简单的方式,应该就是直接使用SPS2003的对象模型了。但有的时候,会有一些问题:
1. SPS2003的对象模型只能本机调用。
2. 如果写一个Web应用程序,使用匿名认证,那么没有办法传用户信息认证。即使使用Impersonate,也会没有权限(至少我没有成功)。
3. 可以自己来写Web Service,远程和认证都没有问题。上传也没有问题,但下载,似乎不那么好写了。
所以,如果可以用WebDAV,会多一种选择,也能开拓我们的思路。下面是一个上传和下载的例子:
上传:
System.Uri myURi = new System.Uri(“https://server/shared document/?var1=hello");
FileStream inStream = File.OpenRead(“c:\text.txt”);
WebRequest req = WebRequest.Create(myURi);
req.Method = "PUT";
req.Timeout = System.Threading.Timeout.Infinite;
req.Credentials = CredentialCache.DefaultCredentials;
Stream outStream = req.GetRequestStream();
CopyStream(inStream, outStream);
outStream.Close();
req.GetResponse();
下载:
System.Uri myURi = new System.Uri(“https://server/share documents/text.txt”);
string sfilePath = "C:\\DownLoadedFiles\\";
sfilePath+=”test.txt”;
WebRequest req = WebRequest.Create(myURi);
req.Method = "GET";
req.Timeout = System.Threading.Timeout.Infinite;
req.Credentials = CredentialCache.DefaultCredentials;
WebResponse res = req.GetResponse();
Stream inStream = res.GetResponseStream();
FileStream fs = new FileStream(sfilePath,FileMode.OpenOrCreate);
CopyStream(inStream,fs);
inStream.Close();
代码仅供参考,其中有一些简化,可能也包含错误。