读书人

急求文件下载的方案解决办法

发布时间: 2012-03-03 15:33:02 作者: rapoo

急急!求文件下载的方案
条件
1:网站程序放在E盘,
2:被客户下载的文件放在D:盘

如果下载的文件放在网站的目录内,很容易解决.
现在是放在不同的盘内.不知道如何解决!
需要用链接的方式进行下载(就是客户点击需要下载的文件名,如果是txt...文件,浏览器直接打开,像rar等文件,弹出保存对话框.
谢谢

[解决办法]
http://www.cnblogs.com/TonyJoule/archive/2007/04/03/90585.html#Post
[解决办法]
string filename = Path.GetFileName( "d:/ty/test.rar ");
string lencodefilename =System.Web.HttpUtility.UrlEncode(filename);
int BufSize = 51200;
string lfilename = "d:/ty/test.rar ";

FileStream fs=new FileStream(lfilename,FileMode.Open,FileAccess.Read,FileShare.Read,BufSize);


Response.Expires = -1;
Response.BufferOutput = true;
Response.ContentType = "application/octet-stream ";
Response.AppendHeader( "Content-Disposition: ", "attachment;filename= " + lencodefilename);
try
{
byte[] ReadBuf = new Byte[BufSize];
fs.Seek(0,SeekOrigin.Begin);
int i =0;
int k = (int)(fs.Length);
while ( i <k)
{
if (i+BufSize <=k)
{
fs.Read(ReadBuf,0,BufSize);
Response.BinaryWrite(ReadBuf);
i=i+BufSize;
}
else
{
byte[] EndBuf =new Byte[k-i];
fs.Read(EndBuf,0,k-i);
Response.BinaryWrite(EndBuf);
i=k;
}
}
}
catch
{
}
fs.Close();
Response.End();

我刚搞的!这样搞定!你再根据你的需要改改!
[解决办法]
string filename = "a.txt ";

if (filename != " ")
{

string path = Server.MapPath(filename);

System.IO.FileInfo file = new System.IO.FileInfo(path);

if (file.Exists)
{

Response.Clear();

Response.AddHeader( "Content-Disposition ", "attachment; filename= " + file.Name);

Response.AddHeader( "Content-Length ", file.Length.ToString());

Response.ContentType = "application/octet-stream ";

Response.Filter.Close();

Response.WriteFile(file.FullName);


Response.End();

}

else
{

Response.Write( "This file does not exist. ");

}

}

[解决办法]
1、可以加一个虚拟目录,这个虚拟目录指向实际的下载用的文件夹。

2、尽量要求上传前先用rar压缩一下。不行的话就在程序里面判断,自动压缩。
[解决办法]
jyk:
你做过“在程序里面判断,自动压缩”?帖个例子出来让我学习一下 :)
[解决办法]
安装好WinRar,因后在asp.net里面调用rar的命令就可以实现目标了。
[解决办法]

[解决办法]
up
[解决办法]
up
[解决办法]
程序压缩
Process p = new Process() ;
p.StartInfo = new ProcessStartInfo( "C:\\Program Files\\WinRAR\\WinRAR.exe ", "a c:\a.rar c:\a.txt ");


p.Start();
调用压缩软件,输入命令,就行了
[解决办法]
.net下 文件下载相关函数

http://blog.csdn.net/hertcloud/archive/2007/03/22/1537371.aspx
[解决办法]
private void Page_Load(object sender, System.EventArgs e)
{
DownLoad();
// 在此处放置用户代码以初始化页面
}
private void DownLoad(){
DataGrid1.DataSource =****************;//自己根据需要绑定数据源
DataGrid1.DataBind ();
Response.ContentType = "application/vnd.ms-excel ";
Response.Charset = " ";
EnableViewState=false;
System.IO .StringWriter tw=new System.IO.StringWriter ();
System.Web .UI .HtmlTextWriter hw=new HtmlTextWriter (tw);
DataGrid1.RenderControl (hw);
Response.Write (tw.ToString ());
Response.End() ;
}
页面载入时,就会弹出一个保存/打开文件对话框,非常符合用户的要求

读书人网 >asp.net

热点推荐