使用IIS作文件服务,使用C#实现上传删除
2012-03-16 17:20
831 查看
使用IIS作文件服务,使用C#实现上传删除
最近做一个项目,合作方使用了IIS作为文件服务器.合作方给我们配置了相关信息:
一个http ULR,用户名,密码;告诉我们只要通过HTTP就可以实现文件上传
由于合作方的服务器我们是操作不了的..仅仅知道是IIS作服务器;
找了很多资料费了九牛二虎之力才知道如果通过IIS来上传文件.特写下来备忘.
搜索了很久没有找到很多相关的资料,最后在微软的网站看到一篇英文的文章,自己再慢慢测试.终于解决.
主要是利用了HTTP1.1协议支持的PUT/DELETE 操作.平时我们常见的只是GET或者POST ..
具体操作见下面:
IIS配置服务器:
1.在IIS中新建立个站点,(详细操作略过)
2.右键站点=>属性=>主目录=>把"写入"勾上
3.在"IISweb服务扩展" ,把 "WEBDAV"允许了(我由于没的选上这个,测试了半天都不行)
4.站点的目录中,把EVERYONE配置为可完全操作(为了安全,你可以只允许某个用户完全控制;等一会用这个用户来上传/删除)
在C#中上传文件:
代码如下:
publicvoid UploadFileBinary(string
localFile,string uploadUrl)
{
HttpWebRequest req= (HttpWebRequest)WebRequest.Create(uploadUrl);
req.Credentials=
new NetworkCredential("Administrator","123456");//用户名,密码
req.PreAuthenticate=
true;
req.Method=
"PUT";
req.AllowWriteStreamBuffering=
true;
// Retrieve request stream
Stream reqStream= req.GetRequestStream();
// Open the local file
FileStream rdr=
new FileStream(localFile, FileMode.Open);
// Allocate byte buffer to hold file contents
byte[] inData=
newbyte[4096];
// loop through the local file reading each data block
// and writing to the request stream buffer
int bytesRead=
rdr.Read(inData,0, inData.Length);
while (bytesRead>
0)
{
reqStream.Write(inData,0, bytesRead);
bytesRead= rdr.Read(inData,0,
inData.Length);
}
rdr.Close();
reqStream.Close();
req.GetResponse();
}
删除文件的代码 :
public
void DeleteFile(string uploadUrl)
{
HttpWebRequest req= (HttpWebRequest)WebRequest.Create(uploadUrl);
req.Credentials=
new NetworkCredential("Administrator","123456");
req.PreAuthenticate=
true;
req.Method=
"DELETE";
//req.AllowWriteStreamBuffering = true;
req.GetResponse();
}
注:当上传是返回 远程服务器返回错误: (409) 冲突。错误时请注意,是由于服务器上不存在上传文件设定的目录,而webclient不会自动创建文件夹所导致。手工创建对应的文件夹即可。(http://topic.csdn.net/u/20110307/11/947f934a-6ecc-4be1-a4b8-64612cc648db.html)
转自:/article/5200477.html
相关文章推荐
- 使用IIS作文件服务,使用C#实现上传删除
- 使用IIS作文件服务,使用C#实现上传删除
- C#实现多文件上传,写到文件夹中,获取文件信息以及下载文件和删除文件
- C#实现使用form上传Excel文件,导入Excel数据到SQL SERVER数据库
- Django在新浪SAE中使用storage服务实现文件上传保存
- C# 使用HttpWebRequest 实现文件的上传
- 使用C#实现FTP的文件上传和下载【转】
- Django在新浪SAE中使用storage服务实现文件上传保存
- Linux系统服务 6 ---- vsftpd服务的配置文件实现匿名登录上传下载和删除功能
- SSM框架中-使用KindEditor+Nginx服务器+FTP服务,实现多文件上传
- Java 使用ftp的方式上传文件到linux,并实现删除,下载
- sae-django 使用storage服务实现文件上传保存
- C# 使用WebAPI上传文件实现
- 使用 Iisext.vbs 删除 Web 服务扩展文件的方法
- java使用Jsch实现远程操作linux服务器进行文件上传、下载,删除和显示目录信息
- C#实现Ftp各种操作(上传,下载,删除文件,创建目录,删除目录,获得文件列表)
- java web端使用smb服务实现上传文件共享
- 使用C#WebClient类访问(上传/下载/删除/列出文件目录)由IIS搭建的http文件服务器