
生成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数据库等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)