asp下载文件(在asp.net中 使用这种方式下载文件,为什么下载的是当前页面,而不是真正的文件呢)

本文目录
- 在asp.net中 使用这种方式下载文件,为什么下载的是当前页面,而不是真正的文件呢
- asp问题:asp下载某个文件
- 如何用ASP实现文件下载
- asp实现文件下载的方法, 想在下载文件时重命名文件,现在试过两种方式实现,但兼容性都不怎么好,要
在asp.net中 使用这种方式下载文件,为什么下载的是当前页面,而不是真正的文件呢
我知道,我就遇到了这种问题,你的strFileName如果为空的话,下载的就是当前页面,也就是说你的string
strFileName
=
this.gvAttachment.Rows[index].Cells.Text;
没有拿到值。如果是在GridView的Row_Command中获取GridView当前行的值是可以在GridView的模板列中这样写
《Columns》
《asp:TemplateField
HeaderText=“附件“》
《ItemTemplate》
《asp:Label
ID=“lblName“
runat=“server“
Text=’《%#
Eval(“AffixName“)%》’
Visible=false》《/asp:Label》
《asp:
LinkButton
ID=“lbtnDownLoad“
runat=“server“
ForeColor=“Black“
CommandName=“download“
Font-Underline=“True“
CommandArgument=’《%#
Eval(“BussinessAffixUrl“)
%》’
Text=’《%#
Eval(“AffixName“)%》’》《%#
Eval(“AffixName“)%》《/asp:LinkButton》
《/ItemTemplate》
《/asp:TemplateField》
《asp:BoundField
DataField=“AffixDisplaySize“
HeaderText=“附件大小“
/》
《/Columns》
后台取值的时候这样取
int
index
=
((GridViewRow)((LinkButton)(e.CommandSource)).Parent.Parent).RowIndex;
string
strFileName
=(
this.gvAttachment.Rows[index].FindControl(“lblName“)
as
Label).Text;
就OK啦
asp问题:asp下载某个文件
找不到网页???
《a
href=download.asp?filename=/upfile/《%=rs(“filename“)%》》《%=rs(“file“)%》《/a》
这个链接是去download.asp
对吧?
------------下面是down.asp文件内容-------------------
《%
Dim
Stream
Dim
Contents
Dim
FileName
.................
下载文件页面是
down.asp,而你的链接又是去download.asp
download.asp都不存在,肯定显示找不到网页
把你的链接改成
《a
href=down.asp?filename=/upfile/《%=rs(“filename“)%》》《%=rs(“file“)%》《/a》
如何用ASP实现文件下载
调用
response.Write(“《a href=down.asp?filename=“&UpLoadPath&ls_array(i+1)&“》“&ls_array
(i)&“《/td》《/tr》“)
down.asp文件内容如下:
《%
Const FilePath = “UploadFile/“ ’文件存放路径
From_url = Cstr(Request.ServerVariables(“HTTP_REFERER“))
Serv_url = Cstr(Request.ServerVariables(“SERVER_NAME“))
Function GetFileName(longname)’/folder1/folder2/file.asp=》file.asp
while instr(longname,“/“)
longname = right(longname,len(longname)-1)
wend
GetFileName = longname
End Function
Dim Stream
Dim Contents
Dim FileName
Dim TrueFileName
Dim FileExt
Const adTypeBinary = 1
FileName = Request.QueryString(“FileName“)
if FileName = ““ Then
Response.Write “无效文件名!“
Response.End
End if
FileExt = Mid(FileName, InStrRev(FileName, “.“) + 1)
Response.Clear
if lcase(right(FileName,3))=“gif“ or lcase(right(FileName,3))=“jpg“ or lcase(right(FileName,3))=“png“ then
Response.ContentType = “image/*“ ’对图像文件不出现下载对话框
else
Response.ContentType = “application/ms-download“
end if
Response.AddHeader “content-disposition“, “attachment; filename=“ & GetFileName(Request.QueryString(“FileName“))
Set Stream = server.CreateObject(“ADODB.Stream“)
Stream.Type = adTypeBinary
Stream.Open
TrueFileName= FilePath &FileName
Response.Write TrueFileName
Response.End
Stream.LoadFromFile Server.MapPath(TrueFileName)
While Not Stream.EOS
Response.BinaryWrite Stream.Read(1024 * 64)
Wend
Stream.Close
Set Stream = Nothing
Response.Flush
Response.End
%》
asp实现文件下载的方法, 想在下载文件时重命名文件,现在试过两种方式实现,但兼容性都不怎么好,要
下载文件函数
’sLogicFileName逻辑文件名,也就是下载时,用户看到的文件名。此处只是文件名’sPhysicsFile物理文件名,包含文件物理路径和文件名
Public function FN_downfile(sLogicFileName,sPhysicsFile)
On Error Resume Next
sLogicFileName=Replace(server.urlencode(sLogicFileName),“%2E“,“.“)
sLogicFileName=Replace(sLogicFileName,“+“,“ “)
Response.Buffer = True
Response.Clear
Set s = Server.CreateObject(“ADODB.Stream“)
s.Open
s.Type = 1
Set fso = Server.CreateObject(“Scripting.FileSystemObject“)
if not fso.FileExists(sPhysicsFile) then
Response.Write(“《h1》Error:《/h1》 文件不存在《p》“)
Response.End
end if
Set f = fso.GetFile(sPhysicsFile)
intFilelength = f.size
s.LoadFromFile(sPhysicsFile)
if err then
Response.Write(“《h1》Error: 《/h1》加载文件失败《p》“)
Response.End
end if
Response.AddHeader “Content-Disposition“, “attachment; filename=“ & sLogicFileName
Response.AddHeader “Content-Length“,intFilelength
Response.Charset = “UTF-8“
Response.ContentType = “application/octet-stream“
Response.BinaryWrite s.Read
Response.Flush
response.Clear
s.Close
Set s = Nothing
Set fso = Nothing
response.End
End function
调用示例
此种方式兼容各种浏览器。但,你的网站编码一定要是UTF-8的,不然会出问题

更多文章:
dropdownlist 绑定(DropDownList 绑定所有项 并 显示指定项)
2026年10月11日 08:50
易语言网页api接口怎么调用(易语言,怎么读取网页json的api)
2026年10月11日 08:00
majority of(the majority of 和 a majority of的区别以及用法例句)
2026年10月11日 07:40
another time(another time和other time的区别)
2026年10月11日 05:00






