作者:陈雅杰昱宏 | 来源:互联网 | 2023-02-07 15:07
问:之前知道可以用HtmlInputFile控件指定一个文件并上载到Web服务器,但是我需要将一个目录下的所有文件一次性的上载到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 {
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在客户端授权的情况下
写遍历程序把文件动态添加到当中,
然后在服务端接收。具体代码没有写过,不过这需要客户端
开放大于默认权限的权限给脚本语言 :)
______________________________________________________________________________________________
答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 {
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都不充许赋初值
所以我感觉不用组件是不行的