我就写了这样两句:
WebClient myWebClient = new WebClient();
          
myWebClient.UploadFile("http://localhost/sanx/pdf/","c:/upfilename.txt");
但总是提示405错误”不允许的方法“,
当我写为myWebClient.UploadFile("http://localhost/sanx/pdf/","HTTP","c:/upfilename.txt");时,又提示501错误“未实现”

解决方案 »

  1.   

    感谢您使用微软的产品。您可以通过如下的方法实现从win application中upload file假设上传目录的物理路径为c:\upload,url为http://localhost/upload
    1.在IIS中upload虚拟目录属性中的directory security中的anonymous access and authentication control一栏中,点击edit,选中Anonymous access,并在virtual directory一栏选中write属性。
    2.将c:\upload目录属性中的Security设置为everyone
    3.在程序中使用如下的代码就可以实现file upload
      WebClient myclient =  new WebClient();
      myclient.UploadFile ("http://localhost/upload/odbc.ini","PUT","e:\\temp\\ODBC.INI");- 微软全球技术中心 技术支持本贴子以“现状”提供且没有任何担保,同时也没有授予任何权利。具体事项可参见使用条款
    (http://support.microsoft.com/directory/worldwide/zh-cn/community/terms_chs.asp)。
    为了为您创建更好的讨论环境,请参加我们的用户满意度调查
    (http://support.microsoft.com/directory/worldwide/zh-cn/community/survey.asp?key=(S,49854782))。
      

  2.   

    看了上面的帖子,有三个问题:
    1。将c:\upload目录属性中的Security设置为everyone   
     是指的设为共享吗?我设了共享但还是一样的出错。(目录可写也设置了)
    2。 myclient.UploadFile ("http://localhost/upload/odbc.ini","PUT","e:\\temp\\ODBC.INI");
    为什么第一个参数不是目录名而是文件名呢?
    3。第三个参数应该是写为:"e:\\temp\\ODBC.INI"还是"e:\temp\odbc.ini"?
      

  3.   

    1, 你c:\upload是iis 里的上传目录么?
    2, 查帮助
    3, 连\\转义符都不知道吗? 不用转义符也行,引号前加个 @
      

  4.   

    c:\upload是物理目录,对应IIS里的localhost/upload
    我就是从帮助文档里找到上面的方法的,但就是出错.
    如果要用字符串表示文件夹的名字必须要用转义符吗?
      

  5.   

    就象mender说的一样,如果要用字符串表示文件夹的名字,有两种方法,一就是用转义符,二是在引号前加@