c#

位置:IT落伍者 >> c# >> 浏览文章

ASP和C#隐藏文件下载路径的方法


发布日期:2018年01月24日
 
ASP和C#隐藏文件下载路径的方法
关于下载路径的隐藏都是通过传递一个数据库中的ID然后在另外一张页面通过传递的ID在数据库中读出路径

c#中实现的方法(只需要ASPXCS的代码就可以了)

string sel_sql=select FileVisualPath from TabMailAttachFiles where FileID=+RequestQueryString[destFileName]ToString();

// string destFileName = RequestQueryString[destFileName]!=null?RequestQueryString[destFileName]:;

string destFileName=ROAComponentsfune_commerceExecad(sel_sql)Tables[]Rows[][]ToString();

destFileName = ServerMapPath()+destFileName;

destFileName = ServerUrlDecode(destFileName);

if(FileExists(destFileName))

{

FileInfo fi = new FileInfo(destFileName);

ResponseClear();

ResponseClearHeaders();

ResponseBuffer = false;

//ResponseAppendHeader(ContentDispositionattachment;filename= +HttpUtilityUrlEncode(PathGetFileName(destFileName)SystemTextEncodingDefault));

ResponseAppendHeader(ContentDispositionattachment;filename= +HttpUtilityUrlEncode(PathGetFileName(destFileName)SystemTextEncodingUTF));

ResponseAppendHeader(ContentLengthfiLengthToString());

ResponseContentType=application/octetstream;

ResponseWriteFile(destFileName);

ResponseFlush();

ResponseEnd();

}

else

{

ResponseWrite(<script langauge=javascript>alert(文件不存在!);historygo();</script>);

ResponseEnd();

}

在ASP中的实现方法

<!#include file=connasp >

<%

ResponseBuffer = true

ResponseClear

dim url

Dim fsoflflsize

dim Dname

Dim objStreamContentTypeflNameisreurl

*********************************************调用时传入的下载文件名

m_ID=trim(requestQueryString(ID))

set rs=ServerCreateObject(adodbrecordset)

sql=select * from dataview where xsf=true and id=&m_ID

rsopen sqlconn

if not rseof then

Dname=rs(path)

else

ResponseWrite(no found)

Responseend

end if

rsclose:set rs=nothing

******************************************************************

If Dname<> Then

******************************下载文件存放的服务端目录

url=ServerMapPath(Dname)

else

ResponseWrite(no found)

Responseend

End If

Set fso=ServerCreateObject(ScriptingFileSystemObject)

Set fl=fsogetfile(url)

flsize=flsize

flName=flname

Set fl=Nothing

Set fso=Nothing

Set objStream = ServerCreateObject(ADODBStream)

objStreamOpen

objStreamType =

objStreamLoadFromFile url

Select Case lcase(Right(flName ))

Case asf

ContentType = video/xmsasf

Case avi

ContentType = video/avi

Case doc

ContentType = application/msword

Case zip

ContentType = application/zip

Case xls

ContentType = application/vndmsexcel

Case gif

ContentType = image/gif

Case jpg jpeg

ContentType = image/jpeg

Case bmp

ContentType = image/bmp

Case ppt

ContentType = application/vndmspowerpoint

Case mdb

ContentType = application/xmsaccess

Case wav

ContentType = audio/wav

Case mp

ContentType = audio/mpeg

Case mpg mpeg

ContentType = video/mpeg

Case rtf

ContentType = application/rtf

Case html

ContentType = text/html

Case txt

ContentType = text/plain

Case Else

ContentType = application/octetstream

End Select

ResponseAddHeader ContentDisposition attachment; filename= & flName

ResponseAddHeader ContentLength flsize

ResponseCharset = UTF

ResponseContentType = ContentType

ResponseBinaryWrite objStreamRead

ResponseFlush

responseClear()

objStreamClose

Set objStream = Nothing

%>               

上一篇:ADO.NET操纵数据库

下一篇:.NET 泛型方法