你下载到本地还行,但不可能打开本地文件!!
你将最基本概念都搞错了,ASP.NET 运行在 服务器上,试想,服务器上的程序怎么打开你本地的文件?
如果可以的话,那你的电脑就不安全了,你想想,如果服务器上的程序能随便打开本地文件,那你还有什么隐私可言?
更何况,运行在服务器上的程序,怎么能打开本地文件?
本地是指服务器本地,还是客户端本地?服务端用System.Diagnostics.Process.Start("exe文件")可以运行exe文件。
客户端就别想了,asp.net不管客户端的事,管客户端的js又没有执行文件的权限。
网上方法不少,可以尝试搜索一下。第一种方法:
Response.ClearContent()
Response.ClearHeaders()
Response.ContentType = "Application/msword"
string s=Server.MapPath("E:/wendang/wo582.doc")
Response.WriteFile("E:/wendang/wo582.doc")
Response.Write(s)
Response.Flush()
Response.Close()
第二种方法:
Response.ClearContent()
Response.ClearHeaders()
Response.ContentType = "Application/msword"
string strFilePath=""
strFilePath =Server.MapPath("E:/wendang/wo582.doc")
FileStream fs = new FileStream(strFilePath,FileMode.OpenOrCreate,FileAccess.Read)
Response.WriteFile(strFilePath,0,fs.Length)
fs.Close()
第三种方法:
string path=Server.MapPath("E:/wendang/wo582.doc")
FileInfo file=new FileInfo(path)
FileStream myfileStream=new FileStream(path,FileMode.Open,FileAccess.Read)
byte[] filedata=new Byte[file.Length]
myfileStream.Read(filedata,0,(int)(file.Length))
myfileStream.Close()
Response.Clear()
Response.ContentType="application/msword"
Response.AddHeader("Content-Disposition","attachmentfilename=wo582.doc")
Response.Flush()
Response.BinaryWrite(filedata)
Response.End()
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)