比如一个虚拟目录http://123.45.67.89/pic/1目录下有50个文件,怎么在ASP.NET页面上放一个按钮,完成把此目录下的所有文件下载到客户端上?希望不要每次都提示打开或另存为刚才在BAIDU中搜ASP.NET下载的例子,出现最多的是"ASP.NET中上传下载文件"的文章,但我看此例只是上传啊,怎么没下载?
//检查上传文件不为空
if(File1.PostedFile!=null)
{
string nam = File1.PostedFile.FileName ;
//取得文件名(抱括路径)里最后一个"."的索引
int i= nam.LastIndexOf(".");
//取得文件扩展名
string newext =nam.Substring(i);
//这里我自动根据日期和文件大小不同为文件命名,确保文件名不重复
DateTime now = DateTime.Now;
string newname=now.DayOfYear.ToString()+File1.PostedFile.ContentLength.ToString();
//保存文件到你所要的目录,这里是IIS根目录下的upload目录.你可以改变.
//注意: 我这里用Server.MapPath()取当前文件的绝对目录.在asp.net里""必须用""代替
File1.PostedFile.SaveAs(Server.MapPath("upload"+newname+newext)); this.HyperLink1.NavigateUrl ="upload"+newname+newext; //得到这个文件的相关属性:文件名,文件类型,文件大小
//fname.Text=File1.PostedFile.FileName;
//fenc.Text=File1.PostedFile.ContentType ;
//fsize.Text=File1.PostedFile.ContentLength.ToString();
}
//检查上传文件不为空
if(File1.PostedFile!=null)
{
string nam = File1.PostedFile.FileName ;
//取得文件名(抱括路径)里最后一个"."的索引
int i= nam.LastIndexOf(".");
//取得文件扩展名
string newext =nam.Substring(i);
//这里我自动根据日期和文件大小不同为文件命名,确保文件名不重复
DateTime now = DateTime.Now;
string newname=now.DayOfYear.ToString()+File1.PostedFile.ContentLength.ToString();
//保存文件到你所要的目录,这里是IIS根目录下的upload目录.你可以改变.
//注意: 我这里用Server.MapPath()取当前文件的绝对目录.在asp.net里""必须用""代替
File1.PostedFile.SaveAs(Server.MapPath("upload"+newname+newext)); this.HyperLink1.NavigateUrl ="upload"+newname+newext; //得到这个文件的相关属性:文件名,文件类型,文件大小
//fname.Text=File1.PostedFile.FileName;
//fenc.Text=File1.PostedFile.ContentType ;
//fsize.Text=File1.PostedFile.ContentLength.ToString();
}
用winrar打包的命令是
rar a -r d:\newfile.rar d:\aa\*.*
从服务器下载文件是要通过用户允许/所以每次都会提示!你可以用BT或迅雷下载(有的可以打包下/但有的就不行/我也不明白)等我就是用上面的下了些文件(有关.net的)
========================》
如果可以这样的话那给客户端装个木马或者病毒什么的就太容易了:)
除非你用activeX控件或者内嵌的winform控件并且有足够的权限,否则绝不可能不提示就直接保存在客户端的硬盘上