ASP重数据库中读取数据生成TXT,在客户端中下载

ASP重数据库中读取数据生成TXT,在客户端中下载,第1张

生成txt文件如果直接下载,可能出现打开这个txt文件。我采用生成doc文件可以直接下载,不用格式转换。

Set Rs = ConnExecute("Select from Area")

Do While Not RsEof

f1(t)=Rs("AreaCode")

f2(t)=Rs("AreaName")

t=t+1

RsMoveNext

Loop

Set Rs = Nothing

Set tf = Nothing

for r=0 to t

k1=k1 & f1(r)

k2=k2 & f2(r)

next

k1=replace(k1,"&","&")

k1=replace(k1," "," ")

k1=replace(k1,"""," ” ")

k1=replace(k1,"<"," < ")

k1=replace(k1,">"," > ")

k2=replace(k2,"&","&")

k2=replace(k2," "," ")

k2=replace(k2,"""," ” ")

k2=replace(k2,"<"," < ")

k2=replace(k2,">"," > ")

Set fso = CreateObject("ScriptingFileSystemObject")

Set tf = fsoCreateTextFile("d:\testfiledoc", True)

Set Fso = ServerCreateObject("ScriptingFileSystemObject")

WJLJ="\TXT\" & 欲保存的文件名 & "doc"

Dir = RequestServerVariables("SCRIPT_NAME")

Dir = StrReverse(Dir)

Dir = Mid(Dir, InStr(1, Dir, "/"))

Dir = StrReverse(Dir)

file = ServerMapPath(Dir) & WJLJ

'文件"TXT/"&欲保存的文件名&"doc"如果存在,则删除

if FsoFileExists(file) then

FsoDeleteFile(file)

end if

'重新创建"TXT/"&欲保存的文件名&"doc"文件

Set os= FsoCreateTextFile (file,True,false)

osWriteLine"AreaCode:"

osWriteLine"" & k1

osWriteLine"AreaName:"

osWriteLine"" & k2

osclose

ResponseRedirect "TXT/"& 欲保存的文件名 &"DOC"

将“欲保存的文件名”修改成变量,如果不是变量,则:

"TXT/直接的文件名DOC",怎么样?

现在大部分网站都使用asp+access构建,这样的话通过下载access数据库简单就可以对网站进行破坏!

而很多的网站都不太重视这些,比如数据库文件名是datamdb等而又有一部分人认为把数据库的扩展名改成asp就万事大吉了,

其实不然!大家可以做个试验 ,在自己的机器上把mdb改成asa或者asp 然后用任何一种下载工具下载,下载之后再把文件名改成mdb 文件照样可以用!道理很简单!iis只执行<% %>内的内容,而mdb文件单纯的修改扩展名只会让iis错误的以txt方式显示出来

你可以看见,如果在浏览器执行asp(注意:这个是mdb数据库)就会看见一大堆乱码,和你用记事本打开看见的一样!

防止数据库被下载的方法就有4种

1:在数据库新建一个表,表名为<%safe就可以了 ,这样iis在解析的时候会出现500错误,数据库也就下载不了了!

2:在你的数据库文件名后门加上# (不是扩展名,比如name#mdb)这样iis就以为你是在请求该目录中默认的文件名,比如indexasp,如果iis找不到就会发出403禁止浏览目录的错误警告!

3:在iis中是把数据库所在的目录设为不可读,这样就可以防止被下载!请放心,这样做不会影响asp程序的正常使用!!

4:直接使用数据源 (ODBC)这样数据库就可以不用在web目录里面,从而彻底防止被下载,但是这样做你必须拥有服务器的管理员权限,哈哈,大部分虚拟主机用户是不可能用数据源 (ODBC)的!

我推荐你使用“网际数据库浏览器”软件,你先看一下以下的介绍:

网际数据库浏览器(Great

Engine

Web

DB

Browse)是一个专门针对互联网数据库开发及维护而设计的开发辅助工具,使用>

我做过读取二进制 楼主可以参考下

string str = "server=DA5A491B3F7544B;database=study;uid=sa;pwd=liyi123";

SqlConnection con = new SqlConnection(str);

conOpen();

string sql = "select from picture where [id]=2";

SqlCommand cmd=new SqlCommand(sql,con);

SqlDataReader sdr = cmdExecuteReader();

if(sdrHasRows)

{

sdrRead();

byte[] bytes = (byte[]) sdr["pic"];

ResponseContentType = "image/jpg";

ResponseOutputStreamWrite(bytes,0,bytesLength);

ResponseEnd();

}

sdrClose();

conClose();

用到WebRequest类。

例如:

Image img = ImageFromStream(WebRequestCreate(">

呵呵,一般数据库都是加密或者更改数据库后缀,如果可以下载的话就不安全了,所以一般虚拟空间把数据库和文件是分开的文件夹。

如果您没有采用一些措施防止别人下载您的数据库,这样数据就泄漏了。

可以用fSO逐行读取

<body>

<%

set fso=serverCreateObject("ScriptingFileSystemObject")

Set txtFile=fsoOpenTextFile(ServerMapPath("texttxt"))

While Not txtFileAtEndOfStream

ResponseWrite "<center>" & txtFileReadLine & "</center><br>"

。。写入数据库

Wend

txtFileClose

%>

</body>

也可以 直接连接数据库,从文本中直接读取

insert into tbl select OPENROWSET('MICROSOFTJETOLEDB40', 'Text;HDR=no;Delimited="::";DATABASE=d:\',tmp#txt)

另外还可以用BCP导入文本到数据库

类似的样式:

EXEC masterxp_cmdshell ’bcp "dbnametablename" in c:“DTtxt -c -Sservername -Usa -Ppassword’

仅供参考,具体写法请查资料,注意路径和文件名

以上就是关于ASP重数据库中读取数据生成TXT,在客户端中下载全部的内容,包括:ASP重数据库中读取数据生成TXT,在客户端中下载、ASP+Access数据库如何防止被下载,如何设置更安全、用什么软件可以打开ASP数据库等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/10061364.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-04
下一篇2023-05-04

发表评论

登录后才能评论

评论列表(0条)

    保存