文件下载的简单问题,50分求救!!!!
知道文件在服务器端 的绝对位置,并且已经存入一个字符串
如: dim str="e:\项目资料\a车站\调查资料.doc
知道服务器的的机器名:如:zc_akj
在界面上有一按钮,客户端点击他后,即弹出咱们常见的文件下载保存对话框,将文件下载下来。就这么简单事到底咋作阿?要求各种文件类型都适应。而不是象有的网站那样除了zip和exe文件其它类型都直接打开文件。
用vb作的asp.net工程,谢谢大家。20分
昨天还提了同样一个问题,没人接,回答后加上那30分,一共50分!
问题点数:20、回复次数:4Top
1 楼DrZhang(荷包蛋)回复于 2003-12-01 09:30:44 得分 0
关注Top
2 楼redfoxhuang(C++++)回复于 2003-12-01 09:31:19 得分 20
private void WriteStream()
{
string strFileName ="";
char[] cha=Session["number"].ToString().ToCharArray();
string file=builtstring(cha);
strFileName = "file.doc";
FileStream myF=File.OpenRead(Server.MapPath("file/file.doc"));//通过想对路径取得物理的路径
strFileName = HttpUtility.UrlEncode(System.Text.Encoding.UTF8.GetBytes(strFileName));
Response.Clear();
Response.ContentType= myF.GetType().ToString();
Response.Charset = "UTF-8";
Response.AddHeader("Content-Disposition", "attachment; filename="+strFileName);
System.IO.FileStream MyFileStream =new FileStream(Server.MapPath("file/file.doc"),System.IO.FileMode.Open,System.IO.FileAccess.Read,System.IO.FileShare.Read);
long FileSize = MyFileStream.Length;
byte[] Buffer = new byte[(int)FileSize];
MyFileStream.Read(Buffer, 0, (int)FileSize);
MyFileStream.Close();
Response.BinaryWrite(Buffer);
Response.End();
}Top
3 楼redfoxhuang(C++++)回复于 2003-12-01 09:32:42 得分 0
我的是直接用流的方式提供文件下载的,用的是c#,注意要引用system.IOTop
4 楼maoning()回复于 2003-12-03 08:41:52 得分 0
我用vb改写了以下,很好用的:
Try
Dim fInfo As System.IO.FileInfo = New FileInfo(fpath)
Dim fname As String = fInfo.Name
Response.Buffer = True
Response.Clear()
Response.AddHeader("Content-Disposition", "attachment;filename=" + Server.UrlEncode(fname))
Response.AddHeader("Content-Length", fInfo.Length.ToString())
Response.ContentType = "application/octet-stream"
Dim MyFileStream As FileStream = New FileStream(fpath, System.IO.FileMode.Open, System.IO.FileAccess.Read, System.IO.FileShare.Read)
Dim FileSize As Long = MyFileStream.Length
Dim Buffer(CInt(FileSize)) As Byte
MyFileStream.Read(Buffer, 0, Int32.Parse(FileSize))
MyFileStream.Close()
Response.BinaryWrite(Buffer)
Catch ex As Exception
Page.RegisterStartupScript("look", "<script language='javascript'>window.alert('文件不存在!' )</script>")
Exit Sub
Finally
Response.End()
End Try
'***************************************************************************Top




