一个关于iis的下载问题。 我IIS虚拟目录文件夹是E:\123 ,在 D盘里有一文件,是456.rar,能不能通过IIS下载D盘里面的456.rar文件。 这里没有把456.rar文件COPY到虚拟目录下。 有什么办法啊。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我在网上看到这个一个解决方法。你下载那个456.RAR文件的进时候,会在虚拟目录下新建一temp文件夹,把你要下载的456.rarCOPY文件到里面,下完后,自动DELETE了。 这样的话,会出现一个问题,如果文件大了,会很慢。 还有一个是什么“利用Adodb.Stream直接下载文件”看了以后,一点头绪都没有,并且是asp的。不知道在asp.net怎么做。 如何把数据放到web不能访问的文件夹中并给用户下载? 在应用中我们可能遇到这样的情况,我们需要临时生成一个数据文件给用户下载,但是每次下载都要判断,也就是说,用户并不能得到这个下载的url不断下载文件,下面是实现方法。文件保存为csv格式,方便数据导入导出,基本原理就是用流写入文件然后用Response.WriteFile把流发送到客户端。SqlConnection conn=new SqlConnection(System.Configuration.ConfigurationSettings.AppSettings[conn]); SqlDataAdapter da=new SqlDataAdapter(select from tb1,conn); DataSet ds=new DataSet(); da.Fill(ds,table1); DataTable dt=ds.Tables[table1]; string name=System.Configuration.ConfigurationSettings.AppSettings[downloadurl].ToString()+DateTime.Today.ToString(yyyyMMdd)+new Random(DateTime.Now.Millisecond).Next(10000).ToString()+.csv;存放到web.config中downloadurl指定的路径,文件格式为当前日期+4位随机数 FileStream fs=new FileStream(name,FileMode.Create,FileAccess.Write); StreamWriter sw=new StreamWriter(fs,System.Text.Encoding.GetEncoding(gb2312)); sw.WriteLine(自动编号,姓名,年龄); foreach(DataRow dr in dt.Rows) { sw.WriteLine(dr[ID]+,+dr[vName]+,+dr[iAge]); } sw.Close(); Response.AddHeader(Content-Disposition, attachment; filename= + Server.UrlEncode(name)); Response.ContentType = applicationms-excel; 指定返回的是一个不能被客户端读取的流,必须被下载 Response.WriteFile(name); 把文件流发送到客户端 Response.End();在这段代码前面你可以放置一些判断,判断是不是这个用户可以下载文件,生成的文件可以把名字存放到数据库中,下次可以直接下载而不要重复写文件了。 用户 'sa' 登录失败问题 回车键如何相应不同的按钮 gridview的问题 VS2005类文件里取Session的问题..... 如何进行有选择性的绑定数据? 求asp.net焦点的提交顺序 无刷新二级Dropdownlist问题 刷新與提交問題(請高手幫忙) 怎么样才算是ASP.NET高手??? 问会vb.net的大哥关于截取字符的一个小问题 求数字签名的相关资料,多多益善 为啥在datagrid的超级链点不了鼠标显示1字而不是手型也点不了链接
在应用中我们可能遇到这样的情况,我们需要临时生成一个数据文件给用户下载,但是每次下载都要判断,也就是说,用户并不能得到这个下载的url不断下载文件,下面是实现方法。文件保存为csv格式,方便数据导入导出,基本原理就是用流写入文件然后用Response.WriteFile把流发送到客户端。SqlConnection conn=new SqlConnection(System.Configuration.ConfigurationSettings.AppSettings[conn]);
SqlDataAdapter da=new SqlDataAdapter(select from tb1,conn);
DataSet ds=new DataSet();
da.Fill(ds,table1);
DataTable dt=ds.Tables[table1];
string name=System.Configuration.ConfigurationSettings.AppSettings[downloadurl].ToString()+DateTime.Today.ToString(yyyyMMdd)+new Random(DateTime.Now.Millisecond).Next(10000).ToString()+.csv;存放到web.config中downloadurl指定的路径,文件格式为当前日期+4位随机数
FileStream fs=new FileStream(name,FileMode.Create,FileAccess.Write);
StreamWriter sw=new StreamWriter(fs,System.Text.Encoding.GetEncoding(gb2312));
sw.WriteLine(自动编号,姓名,年龄);
foreach(DataRow dr in dt.Rows)
{
sw.WriteLine(dr[ID]+,+dr[vName]+,+dr[iAge]);
}
sw.Close();
Response.AddHeader(Content-Disposition, attachment; filename= + Server.UrlEncode(name));
Response.ContentType = applicationms-excel; 指定返回的是一个不能被客户端读取的流,必须被下载
Response.WriteFile(name); 把文件流发送到客户端
Response.End();在这段代码前面你可以放置一些判断,判断是不是这个用户可以下载文件,生成的文件可以把名字存放到数据库中,下次可以直接下载而不要重复写文件了。