在服务器允许写入的情况下可以实现。
需要添加应用
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));
}
需要添加应用
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));
}
楼上的好象不行哦?!我的建议是用JAVASCRIPT或VBSCRIPT在客户端授权的情况下
写遍历程序把文件动态添加到<input type="file">当中,
然后在服务端接收。具体代码没有写过,不过这需要客户端
开放大于默认权限的权限给脚本语言 :)
添加应用
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的虚拟目录必须允许写入。但这样做很不安全,不过可以实现你的问题
MyWebClient.UploadFile("http://111.111.111/upload/"+name,"PUT",files[i]);
楼上的方法不行的
“files = Directory.GetFiles("d:\\test\\");”
这条语句,读取的是服务器端的D:\test内的文件。