asp中文件上传、下载问题
请教,①在ASP里怎么写附件上传及保存事件?②在ASP里怎么写附件下载事件?
问题点数:5、回复次数:6Top
1 楼fox_520(【お孤星泪Ж】)回复于 2006-03-20 16:30:31 得分 0
急!!在线等待。Top
2 楼znjgress(四空和尚)回复于 2006-03-22 11:38:39 得分 5
<%
Dim Stream
Dim Contents
Dim FileName
Dim FileExt
Const adTypeBinary = 1
FileName = Request.QueryString("FileName")
if FileName = "" Then
Response.Write "无效文件名."
Response.End
End if
' 下面是不希望下载的文件
FileExt = Mid(FileName, InStrRev(FileName, ".") + 1)
Select Case UCase(FileExt)
Case "ASP", "ASA", "ASPX", "ASAX", "MDB"
Response.Write "受保护文件,不能下载."
Response.End
End Select
' 下载这个文件
Response.Clear
Response.ContentType = "application/octet-stream"
Response.AddHeader "content-disposition", "attachment; filename=" & FileName
Set Stream = server.CreateObject("ADODB.Stream")
Stream.Type = adTypeBinary
Stream.Open
Stream.LoadFromFile Server.MapPath(FileName)
While Not Stream.EOS
Response.BinaryWrite Stream.Read(1024 * 64)
Wend
Stream.Close
Set Stream = Nothing
Response.Flush
Response.End
%>
Top
3 楼fox_520(【お孤星泪Ж】)回复于 2006-03-23 15:03:20 得分 0
这个我解决了,但是我随机获取文件名后,保存到数据库的文件名和传到文件夹里的文件名不同,怎么解决?
代码:
set upload=server.CreateObject("Persits.Upload.1")
upload.OverwriteFiles=false
upload.Save server.MapPath("../../upload/content/11/")
dim SubFileName,iiPos,iLen,ranNum,NewName
For each File in upload.Files
iiPos=InStrRev(File.Path,".")
iLen=Len(File.Path)
ranNum=int(90000*rnd)+10000
NewName=year(now)&month(now)&day(now)&"_"&hour(now)&minute(now)&second(now)&"_"&ranNum
SubFileName=NewName&"."&Right(File.Path,iLen-iiPos)Top
4 楼pyusksk503(Tony)回复于 2006-03-23 15:09:35 得分 0
怎么会不同了,你保存到数据中的时候就把它上传了,应该不会有问题的.Top
5 楼fox_520(【お孤星泪Ж】)回复于 2006-03-23 15:18:35 得分 0
但是保存到文件夹里的文件名是
For each File in upload.Files
iiPos=InStrRev(File.Path, "\")
iLen=Len(File.Path)
SubFileName=Right(File.Path,iLen-iiPos)
得到的结果.比如上传上时文件原始路径C:\Documents and Settings\Administrator\桌面\anniu1.jpg.运行上帖代码的时候,11文件夹里保存的文件名为anniu1.jpg,而不是和数据库的一样了.Top
6 楼alicc(狂图)回复于 2006-03-27 17:04:33 得分 0
znjgress(四空和尚):你的这个方法,当文件大于3m时就会出错!Top




