在Asp net中如何遍历一个本地目录下的所有文件并上载到Web 服务器上指定的目录中

                问:
之前知道可以用HtmlInputFile控件指定一个文件并上载到Web 服务器,但是我
需要将一个目录下的所有文件一次性的上载到Web 服务器(遍历该目录),能够实现吗
______________________________________________________________________________________________
答1:
无此权限,把我的密码、资料都传上去了,不成黑客了
需要自已做组件
______________________________________________________________________________________________
答2:
在服务器允许写入的情况下可以实现。
需要添加应用
  using System.IO;
在代码中添加(假设你要传的文件是d:/,上传的文件夹为upload)
                           string[] files = null;
            files = Directory.GetFiles("d://");
            int index1,index2;
                            //保持原文件的名称,也可以重新命名
            string name;
            for(int i = 0;i<files.Length;i++)
            {
                index1 = files[i].LastIndexOf("//")+1;
                index2 = files[i].Length;
                name = files[i].Substring(index1,index2);
                this.File1.PostedFile.SaveAs(Server.MapPath("upload//"+name));
            }

______________________________________________________________________________________________
答3:

    楼上的好象不行哦?!



我的建议是用JAVASCRIPT或VBSCRIPT在客户端授权的情况下
写遍历程序把文件动态添加到<input type="file">当中,
然后在服务端接收。具体代码没有写过,不过这需要客户端
开放大于默认权限的权限给脚本语言 :)

______________________________________________________________________________________________
答4:
对不起,刚才我想了想就写上去了,并没有测试。不过下面的代码我测了,可以。  
添加应用
   using System.Net;
   using System.IO;
在代码中添加(假设你要传的文件是d:/test/,上传的地址为http://111.111.111/upload/)
    string[] files = null;
    files = Directory.GetFiles("d://test//");
    int index1,index2;
    //保持原文件的名称,也可以重新命名
    string name;
    for(int i = 0;i<files.Length;i++)
    {
      index1 = files[i].LastIndexOf("//")+1;
      index2 = files[i].Length;
      name = files[i].Substring(index1,index2-index1);
      WebClient MyWebClient = new WebClient();
      MyWebClient.UploadFile("http://111.111.111/upload/1.txt","PUT",files[i]);
               
    }
其中这个upload的虚拟目录必须允许写入。但这样做很不安全,不过可以实现你的问题


______________________________________________________________________________________________
答5:
//保持原文件的名字,修改如下
MyWebClient.UploadFile("http://111.111.111/upload/"+name,"PUT",files[i]);

______________________________________________________________________________________________
答6:
我一直都在想办法解决这个问题,但现在知道的只能是嵌入JAVA,在时代互联上,解决上传多个文件时,也是采用的JAVA。
楼上的方法不行的
“files = Directory.GetFiles("d://test//");”
这条语句,读取的是服务器端的D:/test内的文件。

______________________________________________________________________________________________
答7:
我也遇到这样的问题,期待,有没有不写控件就可以实现的方法?
______________________________________________________________________________________________
答8:
楼上写的都是对服务器的处理
因为安全问题HtmlInputFile都不充许赋初值
所以我感觉不用组件是不行的
            

再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值