现在的位置: 首页 > 综合 > 正文

向已在IIS中开启写权限的服务器直接上传文件

2013年10月31日 ⁄ 综合 ⁄ 共 1591字 ⁄ 字号 评论关闭

 向IIS传文件大家可能都会去写一个接收的页面,其实只要在IIS里设置“允许写”就可以直接向IIS所在的虚拟目录中上传文件了,不过这个很危险,本人并不建议使用,因为你可以方便上传下载文件,也代表其他人也可以轻易上传下载文件。

 

            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(@"http://localhost/test111/113.txt");  //地址是你要上传文件并且在服务器上创建的文件名
            request.Method = WebRequestMethods.File.UploadFile;
            request.AllowWriteStreamBuffering = true;
            Stream s = request.GetRequestStream();
            FileStream fs = new FileStream(@"C:\text.txt", FileMode.Open, FileAccess.Read);
            byte[] b = new byte[fs.Length];
            fs.Read(b, 0, b.Length);
            s.Write(b, 0, b.Length);
            s.Flush();
            fs.Close();
            s.Close();

            request.GetResponse();  //这句话一定要写否则虚拟目录下出不来文件

 

 

删除某个文件

            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(@"http://localhost/test111/113.txt"); 

            request.Method =“DELETE”;
            request.AllowWriteStreamBuffering = true;
            request.GetResponse(); 

 

读取远程iis上的文件

            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(@"http://localhost/test111/113.txt"); 

            request.ContentType = "application/octet-stream";
            request.Method = WebRequestMethods.File.DownloadFile;
            request.AllowWriteStreamBuffering = true;

            WebResponse response = request.GetResponse();
            Stream s = response.GetResponseStream();
            byte[] b = new byte[response.ContentLength];
            for (int i = 0; i < b.Length; i++)
                b[i] = (byte)s.ReadByte();

            s.Close();

            string a = Encoding.UTF8.GetString(b);

之前使用发现一个问题在win2003上的iis使用时一直会报“501未实现”错误,找了一些资料发现原来要开启iis扩展,要打开webdav

 

抱歉!评论已关闭.