protected void LinkButton1_Click(object sender, EventArgs e)
{
//string strFile = "~/doc/mddsc.pdf";//路径根据实际情况而定
//try
//{
// string FullFileName = Server.MapPath(strFile); //FileName--要下载的文件名
// FileInfo DownloadFile = new FileInfo(FullFileName);
// if (DownloadFile.Exists)
// {
// Response.Clear();
// Response.ClearHeaders();
// Response.Buffer = false;
// Response.ContentType = "application/octet-stream";
// Response.AppendHeader("Content-Disposition", "attachment;filename="
// + HttpUtility.UrlEncode(DownloadFile.FullName, System.Text.Encoding.ASCII));
// Response.AppendHeader("Content-Length", DownloadFile.Length.ToString());
// Response.WriteFile(DownloadFile.FullName);
// Response.Flush();
// Response.End();
// }
// else
// {
// //文件不存在
// }
//}
//catch
//{
// //文件不存在
//}
string FullFileName = "";
//ASP.NET下载文件(弹出打开保存文件对话框)
//fileURL为带路径的文件全名
/*
string fileURL = url;
System.IO.FileInfo fileInfo = new System.IO.FileInfo(fileURL);
Response.Clear();
Response.AddHeader("content-disposition","attachment;filename="+Server.UrlEncode(fileInfo.Name.ToString()));
Response.AddHeader("content-length",fileInfo.Length.ToString());
Response.ContentType = "application/octet-stream";
Response.ContentEncoding = System.Text.Encoding.Default;
Response.WriteFile(fileURL);
*/
//无错版:
try
{
string FileName = "";
FileName = "~/doc/mddsc.pdf";
FullFileName = Server.MapPath(FileName);
//FileName--要下载的文件名
FileInfo DownloadFile = new FileInfo(FullFileName);
if (DownloadFile.Exists)
{
Response.Clear();
Response.ClearHeaders();
Response.Buffer = false;
Response.ContentType = "application/octet-stream";
Response.AppendHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(DownloadFile.FullName, System.Text.Encoding.ASCII));
Response.AppendHeader("Content-Length", DownloadFile.Length.ToString());
Response.WriteFile(DownloadFile.FullName);
Response.Flush();
Response.End();
}
else
{
//文件不存在
}
}
catch
{
//打开时异常了
}
}
<asp:LinkButton ID="LinkButton1" runat="server" OnClick="LinkButton1_Click">LinkButton</asp:LinkButton>
下载文件出现提示框或者直接显示在浏览器中
有个朋友问我下载弹出提示框的写法,具体如下:
出现提示框
string strFile="F://a.doc";//路径根据实际情况而定
if(!System.IO.File.Exists(strFile))
{
Response.Write("<script language='javascript'>alert('对不起,文件不存在!');</script>");
return;
}
Response.Clear();
Response.ClearHeaders();
Response.Charset = "GB2312";
Response.ContentEncoding =System.Text.Encoding.UTF8;
Response.ContentType = "application/octet-stream";
FileInfo fi=new FileInfo(strFile);
Response.AddHeader("Content-Disposition","attachment; filename=" + HttpUtility.UrlEncode(fi.Name)) ;
Response.AddHeader("Content-Length",fi.Length.ToString());
byte[] tmpbyte=new byte[1024*8];
FileStream fs=fi.OpenRead();
int count;
while((count=fs.Read(tmpbyte,0,tmpbyte.Length))>0)
{
Response.BinaryWrite(tmpbyte);
Response.Flush();
}
fs.Close();
Response.End();
直接在浏览器中打开
string strFile="F://a.doc";//路径根据实际情况而定
Response.Clear();
Response.ClearHeaders();
Response.Charset = "GB2312";
Response.ContentEncoding =System.Text.Encoding.UTF8;
Response.ContentType = "application/msword";
Response.WriteFile(strFile);
有个朋友问我下载弹出提示框的写法,具体如下:
出现提示框
string strFile="F://a.doc";//路径根据实际情况而定
if(!System.IO.File.Exists(strFile))
{
Response.Write("<script language=javascript>alert(对不起,文件不存在!);</script>");
return;
}
Response.Clear();
Response.ClearHeaders();
Response.Charset = "GB2312";
Response.ContentEncoding =System.Text.Encoding.UTF8;
Response.ContentType = "application/octet-stream";
FileInfo fi=new FileInfo(strFile);
Response.AddHeader("Content-Disposition","attachment; filename=" + HttpUtility.UrlEncode(fi.Name)) ;
Response.AddHeader("Content-Length",fi.Length.ToString());
byte[] tmpbyte=new byte[1024*8];
FileStream fs=fi.OpenRead();
int count;
while((count=fs.Read(tmpbyte,0,tmpbyte.Length))>0)
{
Response.BinaryWrite(tmpbyte);
Response.Flush();
}
fs.Close();
Response.End();
直接在浏览器中打开
string strFile="F://a.doc";//路径根据实际情况而定
Response.Clear();
Response.ClearHeaders();
Response.Charset = "GB2312";
Response.ContentEncoding =System.Text.Encoding.UTF8;
Response.ContentType = "application/msword";
Response.WriteFile(strFile);
http://www.cnblogs.com/skylaugh/archive/2006/12/18/596074.html<br />