信息系统项目管理师_2024年软考学习应考交流_信息系统项目管理师考试

 找回密码
 马上注册

QQ登录

只需一步,快速开始

楼主: 翔羽
打印 上一主题 下一主题

[转帖]ASP编程常用的代码

  [复制链接]

该用户从未签到

升级  30.8%

71
 楼主| 发表于 2006-2-24 09:26:51 | 只看该作者
<strong>用Asp隐藏文件路径,实现防盗链 </strong><p></p><strong><hr/></strong>  如果我们知道一个静态文件的实际路径如:http://www.xx.com/download/51windows.pdf,如果服务器没有作特别的限制设置,我们就可以毫不费力的把它下载下来!当网站提供51windows.pdf下载时,怎么样才能让下载者无法得到他的实际路径呢!本文就来介绍如何使用Asp来隐藏文件的实际下载路径。 <p>  我们在管理网站文件时,可以把扩展名一样的文件放在同一个目录下,起一个比较特别名字,例如放pdf文件目录为the_pdf_file_s,把下面代码另存为down.asp,他的网上路径为http://www.xx.com/down.asp,我们就可以用http://www.xx.com/down.asp?FileName=51windows.pdf来下载这个文件了,而且下载者无法看到这个文件实际下载路径的!在down.asp中我们还可以设置下载文件是否需要登陆,判断下载的来源页是否为外部网站,从而可以做到防止文件被盗链。</p><p>示例代码:</p><p>&lt;%<br/>From_url = Cstr(Request.ServerVariables("HTTP_REFERER"))<br/>Serv_url = Cstr(Request.ServerVariables("SERVER_NAME"))<br/>if mid(From_url,8,len(Serv_url)) &lt;&gt; Serv_url then<br/>response.write "非法链接!" '防止盗链<br/>response.end<br/>end if</p><p>if Request.Cookies("Logined")="" then<br/>response.redirect "/login.asp" '需要登陆!<br/>end if<br/>Function GetFileName(longname)'/folder1/folder2/file.asp=&gt;file.asp<br/>while instr(longname,"/")<br/>longname = right(longname,len(longname)-1)<br/>wend<br/>GetFileName = longname<br/>End Function<br/>Dim Stream<br/>Dim Contents<br/>Dim FileName<br/>Dim TrueFileName<br/>Dim FileExt<br/>Const adTypeBinary = 1<br/>FileName = Request.QueryString("FileName")<br/>if FileName = "" Then<br/>Response.Write "无效文件名!"<br/>Response.End<br/>End if<br/>FileExt = Mid(FileName, InStrRev(FileName, ".") + 1)<br/>Select Case UCase(FileExt)<br/>Case "ASP", "ASA", "ASPX", "ASAX", "MDB"<br/>Response.Write "非法操作!"<br/>Response.End<br/>End Select<br/>Response.Clear<br/>if lcase(right(FileName,3))="gif" or lcase(right(FileName,3))="jpg" or lcase(right(FileName,3))="png" then<br/>Response.ContentType = "image/*" '对图像文件不出现下载对话框<br/>else<br/>Response.ContentType = "application/ms-download"<br/>end if<br/>Response.AddHeader "content-disposition", "attachment; filename=" &amp; GetFileName(Request.QueryString("FileName"))<br/>Set Stream = server.CreateObject("ADODB.Stream")<br/>Stream.Type = adTypeBinary<br/>Stream.Open<br/>if lcase(right(FileName,3))="pdf" then '设置pdf类型文件目录<br/>TrueFileName = "/the_pdf_file_s/"&amp;FileName<br/>end if <br/>if lcase(right(FileName,3))="doc" then '设置DOC类型文件目录<br/>TrueFileName = "/my_D_O_C_file/"&amp;FileName<br/>end if<br/>if lcase(right(FileName,3))="gif" or lcase(right(FileName,3))="jpg" or lcase(right(FileName,3))="png" then<br/>TrueFileName = "/all_images_/"&amp;FileName '设置图像文件目录<br/>end if<br/>Stream.LoadFromFile Server.MapPath(TrueFileName)<br/>While Not Stream.EOS<br/>Response.BinaryWrite Stream.Read(1024 * 64)<br/>Wend<br/>Stream.Close<br/>Set Stream = Nothing<br/>Response.Flush<br/>Response.End<br/>%&gt;</p>

该用户从未签到

升级  30.8%

72
 楼主| 发表于 2006-2-24 09:27:06 | 只看该作者
<p><strong>ASP进度条</strong></p><hr/><p>前段时间研究了一个进度条,大致的思想是<br/>在后台处理数据时,前台页面同时计数显示Proess Bar<br/>使用了layer来显示<br/>用法:<br/>1。引用<br/>&lt;script language="javascript" src="ShowProcessBar.js"&gt;&lt;/script&gt;<br/>2。在提交Button或&lt;A&gt;或&lt;span&gt; 加扩展属性<br/>IsShowProcessBar="True"</p><p><br/>文件ShowProcessBar.js如下</p><p>AddProcessbar();<br/>var bwidth=0;<br/>var swidth = document.all.waiting.clientWidth;</p><p>function CheckIsProcessBar(obj)<br/>{<br/>if (obj.IsShowProcessBar=="True") <br/>{<br/>return false;<br/>} <br/>else<br/>{<br/>return true;<br/>}<br/>}</p><p>function CheckClick(e)<br/>{<br/>if (e == 1)<br/>{<br/>if (bwidth&lt;swidth*0.98){<br/>bwidth += (swidth - bwidth) * 0.025;<br/>if (document.all)document.sbar.width = bwidth;<br/>else document.rating.clip.width = bwidth;<br/>setTimeout('CheckClick(1);',150);</p><p>}<br/>}<br/>else<br/>{<br/>if(document.all)<br/>{<br/>if(document.all.waiting.style.visibility == 'visible')<br/>{document.all.waiting.style.visibility = 'hidden';<br/>bwidth = 1;}<br/>whichIt = event.srcElement;</p><p>while (CheckIsProcessBar(whichIt))<br/>{<br/>whichIt = whichIt.parentElement;<br/>if (whichIt == null)return true;<br/>}</p><p><br/>document.all.waiting.style.pixelTop = (document.body.offsetHeight - document.all.waiting.clientHeight) / 2 + document.body.scrollTop;<br/>document.all.waiting.style.pixelLeft = (document.body.offsetWidth - document.all.waiting.clientWidth) / 2 + document.body.scrollLeft;<br/>document.all.waiting.style.visibility = 'visible';<br/>if(!bwidth)CheckClick(1);<br/>bwidth = 1;</p><p>}</p><p>else<br/>{</p><p>if(document.waiting.visibility == 'show')<br/>{document.waiting.visibility = 'hide';<br/>document.rating.visibility = 'hide';<br/>bwidth = 1;}<br/>if(e.target.href.toString() != '')<br/>{<br/>document.waiting.top = (window.innerHeight - document.waiting.clip.height) / 2 + self.pageYOffset;<br/>document.waiting.left = (window.innerWidth - document.waiting.clip.width) / 2 + self.pageXOffset;<br/>document.waiting.visibility = 'show';<br/>document.rating.top = (window.innerHeight - document.waiting.clip.height) / 2 + self.pageYOffset+document.waiting.clip.height-10;<br/>document.rating.left = (window.innerWidth - document.waiting.clip.width) / 2 + self.pageXOffset;<br/>document.rating.visibility = 'show';<br/>if(!bwidth)CheckClick(1);<br/>bwidth = 1;<br/>}<br/>}<br/>return true;<br/>}<br/>}</p><p>function AddProcessbar()<br/>{</p><p>var Str=""<br/>Str+= "&lt;div id=waiting style=position:absolute;top:50px;left:100px;z-index:1;visibility:hidden &gt;";<br/>Str+= "&lt;layer name=waiting visibility=visible zIndex=2 &gt;"<br/>Str+= "&lt;table border=2 cellspacing=1 cellpadding=0 bordercolorlight=#FFFFFF bordercolordark=#C0C0C0 bgcolor=#E0E0E0&gt;"<br/>Str+= " &lt;tr&gt;"<br/>Str+= " &lt;td bgcolor=#E0E0E0 height=30px width=300px align=center&gt;"<br/>Str+= " &lt;font color=black&gt;系統正在處理中...&lt;/font&gt;"<br/>Str+= " &lt;/td&gt;"<br/>Str+= " &lt;/tr&gt;"<br/>Str+= " &lt;tr&gt;"<br/>Str+= " &lt;td bgcolor=#E0E0E0&gt;"<br/>Str+= " &lt;img width=1 height=10 name=sbar style=background-color:#6699cc&gt;"<br/>Str+= " &lt;/td&gt;"<br/>Str+= " &lt;/tr&gt;"<br/>Str+= "&lt;/table&gt; "<br/>Str+= "&lt;/layer&gt;"<br/>Str+= "&lt;/div&gt;"<br/>document.write(Str)</p><p>if(document.all)document.onclick = CheckClick; <br/>}</p><p><br/>测试文件TestShowBar.HTML</p><p>&lt;HTML&gt;<br/>&lt;HEAD&gt;<br/>&lt;script language="javascript" src="ShowProcessBar.js"&gt;&lt;/script&gt;<br/>&lt;/HEAD&gt;<br/>&lt;BODY&gt;<br/>&lt;A href="error.asp" IsShowProcessBar="True"&gt;A Href&lt;/a&gt;<br/>&lt;BR&gt;<br/>&lt;BR&gt;<br/>&lt;span onclick="location.href='error.asp'" style="cursor:hand" IsShowProcessBar="True"&gt;&lt;font color=blue&gt;Span&lt;/font&gt;&lt;/span&gt;<br/>&lt;BR&gt;<br/>&lt;form action="error.asp"&gt;<br/>&lt;input type=Submit value="Submit"&gt;<br/>&lt;input type=button value="normal button" IsShowProcessBar="True"&gt;<br/>&lt;/form&gt;<br/>&lt IsShowProcessBar="True"&gt;AAAAAAAAAAAAA&lt;/P&gt;<br/>&lt;/BODY&gt;<br/>&lt;/HTML&gt; </p>

该用户从未签到

升级  30.8%

73
 楼主| 发表于 2006-2-24 09:27:31 | 只看该作者
<p><strong>ASP生成柱型体,折线图,饼图源代码</strong></p><hr/><p>&lt;%<br/>function table2(total,table_x,table_y,all_width,all_height,line_no)<br/>'参数含义(传递的数组,横坐标,纵坐标,图表的宽度,图表的高度,折线条数)<br/>'纯ASP代码生成图表函数2——折线图<br/>'作者:龚鸣(Passwordgm) QQ:25968152 MSN:passwordgm@sina.com Email:passwordgm@sina.com<br/>'本人非常愿意和ASP,VML,FLASH的爱好者在HTTP://topclouds.126.com进行交流和探讨<br/>'版本1.0 最后修改日期 2003-8-11<br/>'非常感谢您使用这个函数,请您使用和转载时保留版权信息,这是对作者工作的最好的尊重。</p><p>line_color="#69f"<br/>left_width=70<br/>total_no=ubound(total,1)</p><p>temp1=0<br/>for i=1 to total_no<br/>for j=1 to line_no<br/>if temp1&lt;total(i,j) then temp1=total(i,j)<br/>next<br/>next<br/>temp1=int(temp1)<br/>if temp1&gt;9 then<br/>temp2=mid(cstr(temp1),2,1)<br/>if temp2&gt;4 then <br/>temp3=(int(temp1/(10^(len(cstr(temp1))-1)))+1)*10^(len(cstr(temp1))-1)<br/>else<br/>temp3=(int(temp1/(10^(len(cstr(temp1))-1)))+0.5)*10^(len(cstr(temp1))-1)<br/>end if<br/>else<br/>if temp1&gt;4 then temp3=10 else temp3=5<br/>end if<br/>temp4=temp3<br/>response.write "&lt;v:rect id='_x0000_s1027' alt='' style='position:absolute;left:"&amp;table_x+left_width&amp;"px;top:"&amp;table_y&amp;"px;width:"&amp;all_width&amp;"px;height:"&amp;all_height&amp;"px;z-index:-1' fillcolor='#9cf' stroked='f'&gt;&lt;v:fill rotate='t' angle='-45' focus='100%' type='gradient'/&gt;&lt;/v:rect&gt;"<br/>for i=0 to all_height-1 step all_height/5<br/>response.write "&lt;v:line id='_x0000_s1027' alt='' style='position:absolute;left:0;text-align:left;top:0;flip:y;z-index:-1' from='"&amp;table_x+left_width+length&amp;"px,"&amp;table_y+all_height-length-i&amp;"px' to='"&amp;table_x+all_width+left_width&amp;"px,"&amp;table_y+all_height-length-i&amp;"px' strokecolor='"&amp;line_color&amp;"'/&gt;"<br/>response.write "&lt;v:line id='_x0000_s1027' alt='' style='position:absolute;left:0;text-align:left;top:0;flip:y;z-index:-1' from='"&amp;table_x+(left_width-15)&amp;"px,"&amp;table_y+i&amp;"px' to='"&amp;table_x+left_width&amp;"px,"&amp;table_y+i&amp;"px'/&gt;"<br/>response.write ""<br/>response.write "&lt;v:shape id='_x0000_s1025' type='#_x0000_t202' alt='' style='position:absolute;left:"&amp;table_x&amp;"px;top:"&amp;table_y+i&amp;"px;width:"&amp;left_width&amp;"px;height:18px;z-index:1'&gt;"<br/>response.write "&lt;v:textbox inset='0px,0px,0px,0px'&gt;&lt;table cellspacing='3' cellpadding='0' width='100%' height='100%'&gt;&lt;tr&gt;&lt;td align='right'&gt;"&amp;temp4&amp;"&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/v:textbox&gt;&lt;/v:shape&gt;"<br/>temp4=temp4-temp3/5<br/>next<br/>response.write "&lt;v:line id='_x0000_s1027' alt='' style='position:absolute;left:0;text-align:left;top:0;flip:y;z-index:-1' from='"&amp;table_x+left_width&amp;"px,"&amp;table_y+all_height&amp;"px' to='"&amp;table_x+all_width+left_width&amp;"px,"&amp;table_y+all_height&amp;"px'/&gt;"<br/>response.write "&lt;v:line id='_x0000_s1027' alt='' style='position:absolute;left:0;text-align:left;top:0;flip:y;z-index:-1' from='"&amp;table_x+left_width&amp;"px,"&amp;table_y&amp;"px' to='"&amp;table_x+left_width&amp;"px,"&amp;table_y+all_height&amp;"px'/&gt;"</p><p>dim line_code<br/>redim line_code(line_no,5)<br/>for i=1 to line_no<br/>line_temp=split(total(0,i),",")<br/>line_code(i,1)=line_temp(0)<br/>line_code(i,2)=line_temp(1)<br/>line_code(i,3)=line_temp(2)<br/>line_code(i,4)=line_temp(3)<br/>line_code(i,5)=line_temp(4)<br/>next<br/>for j=1 to line_no<br/>for i=1 to total_no-1<br/>x1=table_x+left_width+all_width*(i-1)/total_no<br/>y1=table_y+(temp3-total(i,j))*(all_height/temp3)<br/>x2=table_x+left_width+all_width*i/total_no<br/>y2=table_y+(temp3-total(i+1,j))*(all_height/temp3)<br/>response.write "&lt;v:line id=""_x0000_s1025"" alt="""" style='position:absolute;left:0;text-align:left;top:0;z-index:1' from="""&amp;x1&amp;"px,"&amp;y1&amp;"px"" to="""&amp;x2&amp;"px,"&amp;y2&amp;"px"" coordsize=""21600,21600"" strokecolor="""&amp;line_code(j,1)&amp;""" strokeweight="""&amp;line_code(j,2)&amp;"""&gt;"<br/>select case line_code(j,3)<br/>case 1<br/>case 2<br/>response.write "&lt;v:stroke dashstyle='1 1'/&gt;"<br/>case 3<br/>response.write "&lt;v:stroke dashstyle='dash'/&gt;"<br/>case 4<br/>response.write "&lt;v:stroke dashstyle='dashDot'/&gt;"<br/>case 5<br/>response.write "&lt;v:stroke dashstyle='longDash'/&gt;"<br/>case 6<br/>response.write "&lt;v:stroke dashstyle='longDashDot'/&gt;"<br/>case 7<br/>response.write "&lt;v:stroke dashstyle='longDashDotDot'/&gt;"<br/>case else<br/>end select<br/>response.write "&lt;/v:line&gt;"&amp;CHR(13)<br/>select case line_code(j,4)<br/>case 1<br/>case 2<br/>response.write "&lt;v:rect id=""_x0000_s1027"" style='position:absolute;left:"&amp;x1-2&amp;"px;top:"&amp;y1-2&amp;"px;width:4px;height:4px; z-index:2' fillcolor="""&amp;line_code(j,1)&amp;""" strokecolor="""&amp;line_code(j,1)&amp;"""/&gt;"&amp;CHR(13)<br/>case 3<br/>response.write "&lt;vval id=""_x0000_s1026"" style='position:absolute;left:"&amp;x1-2&amp;"px;top:"&amp;y1-2&amp;"px;width:4px;height:4px;z-index:1' fillcolor="""&amp;line_code(j,1)&amp;""" strokecolor="""&amp;line_code(j,1)&amp;"""/&gt;"&amp;CHR(13)<br/>end select<br/>next<br/>select case line_code(j,4)<br/>case 1<br/>case 2<br/>response.write "&lt;v:rect id=""_x0000_s1027"" style='position:absolute;left:"&amp;x2-2&amp;"px;top:"&amp;y2-2&amp;"px;width:4px;height:4px; z-index:2' fillcolor="""&amp;line_code(j,1)&amp;""" strokecolor="""&amp;line_code(j,1)&amp;"""/&gt;"&amp;CHR(13)<br/>case 3<br/>response.write "&lt;vval id=""_x0000_s1026"" style='position:absolute;left:"&amp;x2-2&amp;"px;top:"&amp;y2-2&amp;"px;width:4px;height:4px;z-index:1' fillcolor="""&amp;line_code(j,1)&amp;""" strokecolor="""&amp;line_code(j,1)&amp;"""/&gt;"&amp;CHR(13)<br/>end select<br/>next</p><p>for i=1 to total_no<br/>response.write "&lt;v:line id='_x0000_s1027' alt='' style='position:absolute;left:0;text-align:left;top:0;flip:y;z-index:-1' from='"&amp;table_x+left_width+all_width*(i-1)/total_no&amp;"px,"&amp;table_y+all_height&amp;"px' to='"&amp;table_x+left_width+all_width*(i-1)/total_no&amp;"px,"&amp;table_y+all_height+15&amp;"px'/&gt;"<br/>response.write ""<br/>response.write "&lt;v:shape id='_x0000_s1025' type='#_x0000_t202' alt='' style='position:absolute;left:"&amp;table_x+left_width+all_width*(i-1)/total_no&amp;"px;top:"&amp;table_y+all_height&amp;"px;width:"&amp;all_width/total_no&amp;"px;height:18px;z-index:1'&gt;"<br/>response.write "&lt;v:textbox inset='0px,0px,0px,0px'&gt;&lt;table cellspacing='3' cellpadding='0' width='100%' height='100%'&gt;&lt;tr&gt;&lt;td align='left'&gt;"&amp;total(i,0)&amp;"&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/v:textbox&gt;&lt;/v:shape&gt;"<br/>next</p><p>tb_height=30<br/>response.write "&lt;v:rect id='_x0000_s1025' style='position:absolute;left:"&amp;table_x+all_width+20&amp;"px;top:"&amp;table_y&amp;"px;width:100px;height:"&amp;line_no*tb_height+20&amp;"px;z-index:1'/&gt;"<br/>for i=1 to line_no<br/>response.write "&lt;v:shape id='_x0000_s1025' type='#_x0000_t202' alt='' style='position:absolute;left:"&amp;table_x+all_width+25&amp;"px;top:"&amp;table_y+10+(i-1)*tb_height&amp;"px;width:60px;height:"&amp;tb_height&amp;"px;z-index:1'&gt;"<br/>response.write "&lt;v:textbox inset='0px,0px,0px,0px'&gt;&lt;table cellspacing='3' cellpadding='0' width='100%' height='100%'&gt;&lt;tr&gt;&lt;td align='left'&gt;"&amp;line_code(i,5)&amp;"&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/v:textbox&gt;&lt;/v:shape&gt;"<br/>response.write "&lt;v:rect id='_x0000_s1040' alt='' style='position:absolute;left:"&amp;table_x+all_width+80&amp;"px;top:"&amp;table_y+10+(i-1)*tb_height+4&amp;"px;width:30px;height:20px;z-index:1' fillcolor='"&amp;line_code(i,1)&amp;"'&gt;&lt;v:fill color2='"&amp;line_code(i,1)&amp;"' rotate='t' focus='100%' type='gradient'/&gt;&lt;/v:rect&gt;"<br/>next</p><p>end function<br/>%&gt;</p><p>&lt;%<br/>function table1(total,table_x,table_y,thickness,table_width,all_width,all_height,table_type)<br/>'参数含义(传递的数组,横坐标,纵坐标,柱子的厚度,柱子的宽度,图表的宽度,图表的高度,图表的类型)<br/>'纯ASP代码生成图表函数1——柱状图<br/>'作者:龚鸣(Passwordgm) QQ:25968152 MSN:passwordgm@sina.com Email:passwordgm@sina.com<br/>'本人非常愿意和ASP,VML,FLASH的爱好者在HTTP://topclouds.126.com进行交流和探讨<br/>'版本2.0 最后修改日期 2003-7-22<br/>'非常感谢您使用这个函数,请您使用和转载时保留版权信息,这是对作者工作的最好的尊重。<br/>dim tb_color(7,2)<br/>tb_color(1,1)="#d1ffd1"<br/>tb_color(2,1)="#ffbbbb"<br/>tb_color(3,1)="#ffe3bb"<br/>tb_color(4,1)="#cff4f3"<br/>tb_color(5,1)="#d9d9e5"<br/>tb_color(6,1)="#ffc7ab"<br/>tb_color(7,1)="#ecffb7"</p><p>tb_color(1,2)="#00ff00"<br/>tb_color(2,2)="#ff0000"<br/>tb_color(3,2)="#ff9900"<br/>tb_color(4,2)="#33cccc"<br/>tb_color(5,2)="#666699"<br/>tb_color(6,2)="#993300"<br/>tb_color(7,2)="#99cc00"</p><p>line_color="#69f"<br/>left_width=70<br/>length=thickness/2<br/>total_no=ubound(total,1)</p><p>temp1=0<br/>for i=1 to total_no<br/>if temp1&lt;total(i,1) then temp1=total(i,1)<br/>next<br/>temp1=int(temp1)<br/>if temp1&gt;9 then<br/>temp2=mid(cstr(temp1),2,1)<br/>if temp2&gt;4 then <br/>temp3=(int(temp1/(10^(len(cstr(temp1))-1)))+1)*10^(len(cstr(temp1))-1)<br/>else<br/>temp3=(int(temp1/(10^(len(cstr(temp1))-1)))+0.5)*10^(len(cstr(temp1))-1)<br/>end if<br/>else<br/>if temp1&gt;4 then temp3=10 else temp3=5<br/>end if<br/>temp4=temp3<br/>response.write "&lt;!--[if gte vml 1]&gt;&lt;v:rect id='_x0000_s1027' alt='' style='position:absolute;left:"&amp;table_x+left_width&amp;"px;top:"&amp;table_y&amp;"px;width:"&amp;all_width&amp;"px;height:"&amp;all_height&amp;"px;z-index:-1' fillcolor='#9cf' stroked='f'&gt;&lt;v:fill rotate='t' angle='-45' focus='100%' type='gradient'/&gt;&lt;/v:rect&gt;&lt;![endif]--&gt;"<br/>response.write "&lt;!--[if gte vml 1]&gt;&lt;v:line id='_x0000_s1027' alt='' style='position:absolute;left:0;text-align:left;top:0;flip:y;z-index:-1' from='"&amp;table_x+left_width&amp;"px,"&amp;table_y+all_height&amp;"px' to='"&amp;table_x+all_width+left_width&amp;"px,"&amp;table_y+all_height&amp;"px'/&gt;&lt;![endif]--&gt;"<br/>response.write "&lt;!--[if gte vml 1]&gt;&lt;v:line id='_x0000_s1027' alt='' style='position:absolute;left:0;text-align:left;top:0;flip:y;z-index:-1' from='"&amp;table_x+left_width&amp;"px,"&amp;table_y&amp;"px' to='"&amp;table_x+left_width&amp;"px,"&amp;table_y+all_height&amp;"px'/&gt;&lt;![endif]--&gt;"</p><p>select case table_type<br/>case "A"<br/>table_space=(all_width-table_width*total_no)/total_no<br/>response.write "&lt;!--[if gte vml 1]&gt;&lt;v:line id='_x0000_s1027' alt='' style='position:absolute;left:0;text-align:left;top:0;flip:y;z-index:-1' from='"&amp;table_x+left_width+length&amp;"px,"&amp;table_y&amp;"px' to='"&amp;table_x+left_width+length&amp;"px,"&amp;table_y+all_height-length&amp;"px' strokecolor='"&amp;line_color&amp;"'/&gt;&lt;![endif]--&gt;"<br/>for i=0 to all_height-1 step all_height/5<br/>response.write "&lt;!--[if gte vml 1]&gt;&lt;v:line id='_x0000_s1027' alt='' style='position:absolute;left:0;text-align:left;top:0;flip:y;z-index:-1' from='"&amp;table_x+left_width&amp;"px,"&amp;table_y+all_height-length-i&amp;"px' to='"&amp;table_x+left_width+length&amp;"px,"&amp;table_y+all_height-i&amp;"px' strokecolor='"&amp;line_color&amp;"'/&gt;&lt;![endif]--&gt;"<br/>response.write "&lt;!--[if gte vml 1]&gt;&lt;v:line id='_x0000_s1027' alt='' style='position:absolute;left:0;text-align:left;top:0;flip:y;z-index:-1' from='"&amp;table_x+left_width+length&amp;"px,"&amp;table_y+all_height-length-i&amp;"px' to='"&amp;table_x+all_width+left_width&amp;"px,"&amp;table_y+all_height-length-i&amp;"px' strokecolor='"&amp;line_color&amp;"'/&gt;&lt;![endif]--&gt;"<br/>response.write "&lt;!--[if gte vml 1]&gt;&lt;v:line id='_x0000_s1027' alt='' style='position:absolute;left:0;text-align:left;top:0;flip:y;z-index:-1' from='"&amp;table_x+(left_width-15)&amp;"px,"&amp;table_y+i&amp;"px' to='"&amp;table_x+left_width&amp;"px,"&amp;table_y+i&amp;"px'/&gt;&lt;![endif]--&gt;"<br/>response.write "&lt;!--[if gte vml 1]&gt;"<br/>response.write "&lt;v:shape id='_x0000_s1025' type='#_x0000_t202' alt='' style='position:absolute;left:"&amp;table_x&amp;"px;top:"&amp;table_y+i&amp;"px;width:"&amp;left_width&amp;"px;height:18px;z-index:1'&gt;"<br/>response.write "&lt;v:textbox inset='0px,0px,0px,0px'&gt;&lt;table cellspacing='3' cellpadding='0' width='100%' height='100%'&gt;&lt;tr&gt;&lt;td align='right'&gt;"&amp;temp4&amp;"&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/v:textbox&gt;&lt;/v:shape&gt;&lt;![endif]--&gt;"<br/>temp4=temp4-temp3/5<br/></p>

该用户从未签到

升级  30.8%

74
 楼主| 发表于 2006-2-24 09:27:49 | 只看该作者
next<br/>for i=1 to total_no<br/>temp_space=table_x+left_width+table_space/2+table_space*(i-1)+table_width*(i-1)<br/>response.write "&lt;v:rect id='_x0000_s1025' alt='' style='position:absolute;left:"<br/>response.write temp_space<br/>response.write "px;top:"<br/>response.write table_y+all_height*(1-(total(i,1)/temp3))<br/>response.write "px;width:"&amp;table_width&amp;"px;height:"&amp;all_height*(total(i,1)/temp3)&amp;"px;z-index:1' fillcolor='"&amp;tb_color(i,2)&amp;"'&gt;"<br/>response.write "&lt;v:fill color2='"&amp;tb_color(i,1)&amp;"' rotate='t' type='gradient'/&gt;"<br/>response.write "&lt;o:extrusion v:ext='view' backdepth='"&amp;thickness&amp;"pt' color='"&amp;tb_color(i,2)&amp;"' on='t'/&gt;"<br/>response.write "&lt;/v:rect&gt;"<br/>response.write "&lt;v:shape id='_x0000_s1025' type='#_x0000_t202' alt='' style='position:absolute;left:"&amp;temp_space&amp;"px;top:"&amp;table_y+all_height*(1-(total(i,1)/temp3))-table_width&amp;"px;width:"&amp;table_space+15&amp;"px;height:18px;z-index:1'&gt;"<br/>response.write "&lt;v:textbox inset='0px,0px,0px,0px'&gt;&lt;table cellspacing='3' cellpadding='0' width='100%' height='100%'&gt;&lt;tr&gt;&lt;td align='center'&gt;"&amp;total(i,1)&amp;"&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/v:textbox&gt;&lt;/v:shape&gt;"<p>response.write "&lt;v:shape id='_x0000_s1025' type='#_x0000_t202' alt='' style='position:absolute;left:"&amp;temp_space-table_space/2&amp;"px;top:"&amp;table_y+all_height+1&amp;"px;width:"&amp;table_space+table_width&amp;"px;height:18px;z-index:1'&gt;"<br/>response.write "&lt;v:textbox inset='0px,0px,0px,0px'&gt;&lt;table cellspacing='3' cellpadding='0' width='100%' height='100%'&gt;&lt;tr&gt;&lt;td align='center'&gt;"&amp;total(i,2)&amp;"&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/v:textbox&gt;&lt;/v:shape&gt;"<br/>next<br/>Case "B"<br/>table_space=(all_height-table_width*total_no)/total_no<br/>response.write "&lt;!--[if gte vml 1]&gt;&lt;v:line id='_x0000_s1027' alt='' style='position:absolute;left:0;text-align:left;top:0;flip:y;z-index:-1' from='"&amp;table_x+left_width+length&amp;"px,"&amp;table_y+all_height-length&amp;"px' to='"&amp;table_x+left_width+all_width&amp;"px,"&amp;table_y+all_height-length&amp;"px' strokecolor='"&amp;line_color&amp;"'/&gt;&lt;![endif]--&gt;"<br/>for i=0 to all_width-1 step all_width/5<br/>response.write "&lt;!--[if gte vml 1]&gt;&lt;v:line id='_x0000_s1027' alt='' style='position:absolute;left:0;text-align:left;top:0;flip:y;z-index:-1' from='"&amp;table_x+left_width+i&amp;"px,"&amp;table_y+all_height-length&amp;"px' to='"&amp;table_x+left_width+length+i&amp;"px,"&amp;table_y+all_height&amp;"px' strokecolor='"&amp;line_color&amp;"'/&gt;&lt;![endif]--&gt;"<br/>response.write "&lt;!--[if gte vml 1]&gt;&lt;v:line id='_x0000_s1027' alt='' style='position:absolute;left:0;text-align:left;top:0;flip:y;z-index:-1' from='"&amp;table_x+left_width+length+i&amp;"px,"&amp;table_y+all_height-length&amp;"px' to='"&amp;table_x+left_width+length+i&amp;"px,"&amp;table_y&amp;"px' strokecolor='"&amp;line_color&amp;"'/&gt;&lt;![endif]--&gt;"<br/>response.write "&lt;!--[if gte vml 1]&gt;&lt;v:line id='_x0000_s1027' alt='' style='position:absolute;left:0;text-align:left;top:0;flip:y;z-index:-1' from='"&amp;table_x+left_width+i+all_width/5&amp;"px,"&amp;table_y+all_height&amp;"px' to='"&amp;table_x+left_width+i+all_width/5&amp;"px,"&amp;table_y+all_height+15&amp;"px'/&gt;&lt;![endif]--&gt;"<br/>response.write "&lt;!--[if gte vml 1]&gt;"<br/>response.write "&lt;v:shape id='_x0000_s1025' type='#_x0000_t202' alt='' style='position:absolute;left:"&amp;table_x+left_width+i+all_width/5-left_width&amp;"px;top:"&amp;table_y+all_height&amp;"px;width:"&amp;left_width&amp;"px;height:18px;z-index:1'&gt;"<br/>response.write "&lt;v:textbox inset='0px,0px,0px,0px'&gt;&lt;table cellspacing='3' cellpadding='0' width='100%' height='100%'&gt;&lt;tr&gt;&lt;td align='right'&gt;"&amp;temp4&amp;"&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/v:textbox&gt;&lt;/v:shape&gt;&lt;![endif]--&gt;"<br/>temp4=temp4-temp3/5<br/>next</p><p>for i=1 to total_no<br/>temp_space=table_space/2+table_space*(i-1)+table_width*(i-1)<br/>response.write "&lt;v:rect id='_x0000_s1025' alt='' style='position:absolute;left:"<br/>response.write table_x+left_width<br/>response.write "px;top:"<br/>response.write table_y+temp_space<br/>response.write "px;width:"&amp;all_width*(total(i,1)/temp3)&amp;"px;height:"&amp;table_width&amp;"px;z-index:1' fillcolor='"&amp;tb_color(i,2)&amp;"'&gt;"<br/>response.write "&lt;v:fill color2='"&amp;tb_color(i,1)&amp;"' rotate='t' angle='-90' focus='100%' type='gradient'/&gt;"<br/>response.write "&lt;o:extrusion v:ext='view' backdepth='"&amp;thickness&amp;"pt' color='"&amp;tb_color(i,2)&amp;"' on='t'/&gt;"<br/>response.write "&lt;/v:rect&gt;"<br/>response.write "&lt;v:shape id='_x0000_s1025' type='#_x0000_t202' alt='' style='position:absolute;left:"&amp;table_x+left_width+all_width*(total(i,1)/temp3)+thickness/2&amp;"px;top:"&amp;table_y+temp_space&amp;"px;width:"&amp;table_space+15&amp;"px;height:18px;z-index:1'&gt;"<br/>response.write "&lt;v:textbox inset='0px,0px,0px,0px'&gt;&lt;table cellspacing='3' cellpadding='0' width='100%' height='100%'&gt;&lt;tr&gt;&lt;td align='center'&gt;"&amp;total(i,1)&amp;"&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/v:textbox&gt;&lt;/v:shape&gt;"</p><p>response.write "&lt;v:shape id='_x0000_s1025' type='#_x0000_t202' alt='' style='position:absolute;left:"&amp;table_x&amp;"px;top:"&amp;table_y+temp_space&amp;"px;width:"&amp;left_width&amp;"px;height:18px;z-index:1'&gt;"<br/>response.write "&lt;v:textbox inset='0px,0px,0px,0px'&gt;&lt;table cellspacing='3' cellpadding='0' width='100%' height='100%'&gt;&lt;tr&gt;&lt;td align='right'&gt;"&amp;total(i,2)&amp;"&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/v:textbox&gt;&lt;/v:shape&gt;"<br/>next<br/>case else<br/>end select</p><p>end function<br/>%&gt;</p><p>&lt;%<br/>function table3(total,table_x,table_y,all_width,all_height,table_type)<br/>'参数含义(传递的数组,横坐标,纵坐标,图表的宽度,图表的高度,图表的类型)<br/>'纯ASP代码生成图表函数3——饼图<br/>'作者:龚鸣(Passwordgm) QQ:25968152 MSN:passwordgm@sina.com Email:passwordgm@sina.com<br/>'本人非常愿意和ASP,VML,FLASH的爱好者在HTTP://topclouds.126.com进行交流和探讨<br/>'版本1.0 最后修改日期 2003-8-11<br/>'非常感谢您使用这个函数,请您使用和转载时保留版权信息,这是对作者工作的最好的尊重。<br/>tb_height=30</p><p>dim tb_color(7,2)<br/>tb_color(1,1)="#d1ffd1"<br/>tb_color(2,1)="#ffbbbb"<br/>tb_color(3,1)="#ffe3bb"<br/>tb_color(4,1)="#cff4f3"<br/>tb_color(5,1)="#d9d9e5"<br/>tb_color(6,1)="#ffc7ab"<br/>tb_color(7,1)="#ecffb7"</p><p>tb_color(1,2)="#00ff00"<br/>tb_color(2,2)="#ff0000"<br/>tb_color(3,2)="#ff9900"<br/>tb_color(4,2)="#33cccc"<br/>tb_color(5,2)="#666699"<br/>tb_color(6,2)="#993300"<br/>tb_color(7,2)="#99cc00"</p><p>total_no=ubound(total,1)<br/>totalpie=0<br/>for i=1 to total_no<br/>totalpie=totalpie+total(i,1)<br/>next</p><p>reAngle=0<br/>for i=1 to total_no<br/>response.write "&lt;v:shape id='_x0000_s1025' alt='' style='position:absolute;left:"&amp;table_x&amp;"px;top:"&amp;table_y&amp;"px;width:"&amp;all_width&amp;"px;height:"&amp;all_height&amp;"px;z-index:1' coordsize='1500,1400' o:spt='100' adj='0,,0' path='m750,700ae750,700,750,700,"&amp;int(23592960*PreAngle)&amp;","&amp;int(23592960*total(i,1)/totalpie)&amp;"xe' fillcolor='"&amp;tb_color(i,1)&amp;"' strokecolor='#FFFFFF'&gt;&lt;v:fill color2='"&amp;tb_color(i,2)&amp;"' rotate='t' focus='100%' type='gradient'/&gt;&lt;v:stroke joinstyle='round'/&gt;&lt;v:formulas/&gt;&lt;v:path o:connecttype='segments'/&gt;&lt;/v:shape&gt;"&amp;CHr(13)<br/>reAngle=PreAngle+total(i,1)/totalpie<br/>next</p><p>if table_type="A" then<br/>response.write "&lt;v:rect id='_x0000_s1025' style='position:absolute;left:"&amp;table_x+all_width+20&amp;"px;top:"&amp;table_y+20&amp;"px;width:100px;height:"&amp;total_no*tb_height+20&amp;"px;z-index:1'/&gt;"<br/>for i=1 to total_no<br/>response.write "&lt;v:shape id='_x0000_s1025' type='#_x0000_t202' alt='' style='position:absolute;left:"&amp;table_x+all_width+25&amp;"px;top:"&amp;table_y+30+(i-1)*tb_height&amp;"px;width:60px;height:"&amp;tb_height&amp;"px;z-index:1'&gt;"<br/>response.write "&lt;v:textbox inset='0px,0px,0px,0px'&gt;&lt;table cellspacing='3' cellpadding='0' width='100%' height='100%'&gt;&lt;tr&gt;&lt;td align='left'&gt;"&amp;total(i,0)&amp;"&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/v:textbox&gt;&lt;/v:shape&gt;"<br/>response.write "&lt;v:rect id='_x0000_s1040' alt='' style='position:absolute;left:"&amp;table_x+all_width+80&amp;"px;top:"&amp;table_y+30+(i-1)*tb_height+3&amp;"px;width:30px;height:20px;z-index:1' fillcolor='"&amp;tb_color(i,1)&amp;"'&gt;&lt;v:fill color2='"&amp;tb_color(i,2)&amp;"' rotate='t' focus='100%' type='gradient'/&gt;&lt;/v:rect&gt;"<br/>'显示比例数<br/>' response.write "&lt;v:shape id='_x0000_s1025' type='#_x0000_t202' alt='' style='position:absolute;left:"&amp;table_x+all_width+110&amp;"px;top:"&amp;table_y+30+(i-1)*tb_height&amp;"px;width:60px;height:"&amp;tb_height&amp;"px;z-index:1'&gt;"<br/>' response.write "&lt;v:textbox inset='0px,0px,0px,0px'&gt;&lt;table cellspacing='3' cellpadding='0' width='100%' height='100%'&gt;&lt;tr&gt;&lt;td align='left'&gt;"&amp;formatnumber(total(i,1)*100/totalpie,2,-1)&amp;"%&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/v:textbox&gt;&lt;/v:shape&gt;"<br/>next<br/>end if</p>

该用户从未签到

升级  30.8%

75
 楼主| 发表于 2006-2-24 09:28:02 | 只看该作者
<p>if table_type="B" then<br/>pie=3.14159265358979<br/>TempPie=0<br/>for i=1 to total_no<br/>TempAngle=pie*2*(total(i,1)/(TotalPie*2)+TempPie)<br/>x1=table_x+all_width/2+cos(TempAngle)*all_width*3/8<br/>y1=table_y+all_height/2-sin(TempAngle)*all_height*3/8<br/>x2=table_x+all_width/2+cos(TempAngle)*all_width*3/4<br/>y2=table_y+all_height/2-sin(TempAngle)*all_height*3/4<br/>if x2&gt;table_x+all_width/2 then<br/>x3=x2+20<br/>x4=x3<br/>else<br/>x3=x2-20<br/>x4=x3-100<br/>end if<br/>response.write "&lt;vval id='_x0000_s1027' style='position:absolute;left:"&amp;x1-2&amp;"px;top:"&amp;y1-2&amp;"px;width:4px;height:4px; z-index:2' fillcolor='#111111' strokecolor='#111111'/&gt;"&amp;CHR(13)<br/>response.write "&lt;v:line id='_x0000_s1025' alt='' style='position:absolute;left:0;text-align:left;top:0;z-index:1' from='"&amp;x1&amp;"px,"&amp;y1&amp;"px' to='"&amp;x2&amp;"px,"&amp;y2&amp;"px' coordsize='21600,21600' strokecolor='#111111' strokeweight='1px'&gt;&lt;/v:line&gt;"<br/>response.write "&lt;v:line id='_x0000_s1025' alt='' style='position:absolute;left:0;text-align:left;top:0;z-index:1' from='"&amp;x2&amp;"px,"&amp;y2&amp;"px' to='"&amp;x3&amp;"px,"&amp;y2&amp;"px' coordsize='21600,21600' strokecolor='#111111' strokeweight='1px'&gt;&lt;/v:line&gt;"<br/>response.write "&lt;v:shape id='_x0000_s1025' type='#_x0000_t202' alt='' style='position:absolute;left:"&amp;x4&amp;"px;top:"&amp;y2-10&amp;"px;width:100px;height:20px;z-index:1'&gt;"<br/>response.write "&lt;v:textbox inset='0px,0px,0px,0px'&gt;&lt;table cellspacing='3' cellpadding='0' width='100%' height='100%'&gt;&lt;tr&gt;&lt;td align='left'&gt;"&amp;total(i,0)&amp;" "&amp;formatnumber(total(i,1)*100/totalpie,2,-1)&amp;"%&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/v:textbox&gt;&lt;/v:shape&gt;"<br/>TempPie=TempPie+total(i,1)/TotalPie<br/>next<br/>end if</p><p>end function<br/>%&gt;</p><p>纯ASP代码生成图表函数1——柱状图调用示例<br/>&lt;%<br/>dim total(7,2)<br/>total(1,1)=200<br/>total(2,1)=800<br/>total(3,1)=1000<br/>total(4,1)=600<br/>total(5,1)=1222<br/>total(6,1)=3213<br/>total(7,1)=8</p><p>total(1,2)="中国经营报"<br/>total(2,2)="招聘网"<br/>total(3,2)="51Job"<br/>total(4,2)="新民晚报"<br/>total(5,2)="新闻晚报"<br/>total(6,2)="南方周末"<br/>total(7,2)="羊城晚报"</p><p>total_no=7<br/>%&gt;<br/>&lt;html xmlns:v="urn:schemas-microsoft-com:vml" xmlns="urn:schemas-microsoft-comfficeffice"&gt;<br/>&lt;!--[if !mso]&gt;<br/>&lt;style&gt;<br/>v\:* { behavior: url(#default#VML) }<br/>o\:* { behavior: url(#default#VML) }<br/>.shape { behavior: url(#default#VML) }<br/>&lt;/style&gt;<br/>&lt;![endif]--&gt;<br/>&lt;head&gt;<br/>&lt;meta http-equiv="Content-Type" content="text/html; charset=gb2312"&gt;<br/>&lt;title&gt;&lt;/title&gt;<br/>&lt;style&gt;<br/>TD { FONT-SIZE: 9pt}<br/>&lt;/style&gt;&lt;/head&gt;<br/>&lt;body topmargin=5 leftmargin=0 scroll=AUTO&gt;<br/>&lt;%call table1(total,200,20,20,30,400,200,"A")%&gt;<br/>&lt;%call table1(total,200,320,20,20,400,250,"B")%&gt;<br/>&lt;/body&gt;<br/>&lt;/html&gt;</p>

该用户从未签到

升级  30.8%

76
 楼主| 发表于 2006-2-25 12:36:08 | 只看该作者
<p><strong>asp实现批量录入数据的实现</strong></p><hr/><p>批量录入在数据库的应用中比较广泛的,关于批量录入的方法也有好多种。<br/>下面我就结合我实际中的应用,谈一下儿我是怎么实现的。<br/>主要用到的是form的集合的概念,通过循环取的所有的集合内数据。<br/>考虑到大家看着方便,我把它集成到了一个页面。<br/>下面是具体的代码: <br/>batchInput.asp<br/>&lt;%<br/>'#####################################<br/>'File Function:批量录入数据<br/>'Author:Myhon<br/>'Date:2003-8-19<br/>'#####################################</p><p>'向数据库写入数据<br/>SUB writeData()<br/>dim recCnt,i<br/>dim fieldName1,fieldName2,fieldName3<br/>dim conn<br/>dim sqlStr,connStr<br/>connStr="rovider=SQLOLEDB.1;Initial Catalog=myDatabase;Data Source=myhon;User Id=saASSWORD="<br/>set conn=Server.CreateObject("ADODB.Connection")<br/>conn.open connStr '建立数据库连接</p><p>recCnt=request.form("stu_num").count '取得共有多少条记录<br/>'批量录入数据<br/>for i=1 to recCnt<br/>fieldName1=trim(request.form("fieldName1")(i))<br/>fieldName2=trim(request.form("fieldName2")(i))<br/>fieldName3=trim(request.form("fieldName3")(i))<br/>sqlStr="insert into myTable(fieldName1,fieldName2,fieldName3) values('"<br/>sqlStr=sqlStr &amp; fieldName1 &amp; "','"<br/>sqlStr=sqlStr &amp; fieldName2 &amp; "','"<br/>sqlStr=sqlStr &amp; fieldName3 &amp; "')"<br/>'response.write sqlStr<br/>conn.execute(sqlStr)<br/>next<br/>END SUB</p><p>'显示成批录入的界面<br/>SUB InputData()<br/>dim recCnt,i<br/>%&gt;<br/>&lt;form name="bathInputData" action="" method="post"&gt;<br/>&lt;% <br/>recCnt=cint(request.form("recCnt"))<br/>for i=1 to recCnt<br/>%&gt;<br/>&lt;input type="text" name="fieldName1"&gt;<br/>&lt;input type="text" name="fieldName2"&gt;<br/>&lt;input type="text" name="fieldName3"&gt;<br/>&lt;%<br/>next<br/>%&gt;<br/>&lt;br&gt;<br/>&lt;input type="submit" name="action" value="提交"&gt;<br/>&lt;/form&gt;<br/>&lt;%<br/>END SUB</p><p>'指定要批量录入多少条记录<br/>SUB assignHowMuch()<br/>%&gt;</p><p>&lt;!------指定要录入多少条记录--------------&gt;<br/>&lt;form name="form1" action="" method="post"&gt;<br/>您要录入的记录的条数:&lt;input type="text" name="recCnt"&gt;<br/>&lt;input type="submit" name="action" value="下一步&gt;&gt;"&gt;<br/>&lt;/form&gt;<br/>&lt;%<br/>END SUB</p><p>if request.form("action")="下一步&gt;&gt;" then<br/>Call InputData() '显示成批录入界面<br/>elseif request.form("action")="提交" then Call writeData() '向数据库批量写入数据<br/>else<br/>Call assignHowMuch() '显示指定录入多少条记录的界面<br/>end if<br/><br/>%&gt;<br/></p>

该用户从未签到

升级  30.8%

77
 楼主| 发表于 2006-2-25 12:36:53 | 只看该作者
<p><strong>在SQL Server中保存和输出图片</strong></p><hr/><p>介绍 <br/><br/><br/>有时候我们需要保存一些binary data进数据库。SQL Server提供一个叫做image的特殊数据类型供我们保存binary data。Binary data可以是图片、文档等。在这篇文章中我们将看到如何在SQL Server中保存和输出图片。 <br/><br/><br/>建表 <br/><br/><br/>为了试验这个例子你需要一个含有数据的table(你可以在现在的库中创建它,也可以创建一个新的数据库),下面是它的结构: <br/><br/><br/>Column Name <br/>Datatype <br/>urpose <br/><br/>ID <br/>Integer <br/>identity column Primary key <br/><br/>IMGTITLE <br/>Varchar(50) <br/>Stores some user friendly title to identity the image <br/><br/>IMGTYPE <br/>Varchar(50) <br/>Stores image content type. This will be same as recognized content types of ASP.NET <br/><br/>IMGDATA <br/>Image <br/>Stores actual image or binary data. <br/><br/><br/><br/><br/>保存images进SQL Server数据库 <br/><br/><br/>为了保存图片到table你首先得从客户端上传它们到你的web服务器。你可以创建一个web form,用TextBox得到图片的标题,用HTML File Server Control得到图片文件。确信你设定了Form的encType属性为multipart/form-data。 <br/><br/><br/>Stream imgdatastream = File1.PostedFile.InputStream; <br/><br/>int imgdatalen = File1.PostedFile.ContentLength; <br/><br/>string imgtype = File1.PostedFile.ContentType; <br/><br/>string imgtitle = TextBox1.Text; <br/><br/>byte[] imgdata = new byte[imgdatalen]; <br/><br/>int n = imgdatastream.Read(imgdata,0,imgdatalen); <br/><br/>string connstr= <br/><br/>((NameValueCollection)Context.GetConfig <br/><br/>("appSettings"))["connstr"]; <br/><br/>SqlConnection connection = new SqlConnection(connstr); <br/><br/>SqlCommand command = new SqlCommand <br/><br/>("INSERT INTO ImageStore(imgtitle,imgtype,imgdata) <br/><br/>VALUES ( @imgtitle, @imgtype,@imgdata )", connection ); <br/><br/><br/><br/>SqlParameter paramTitle = new SqlParameter <br/><br/>("@imgtitle", SqlDbType.VarChar,50 ); <br/><br/>paramTitle.Value = imgtitle; <br/><br/>command.Parameters.Add( paramTitle); <br/><br/><br/><br/>SqlParameter paramData = new SqlParameter <br/><br/>( "@imgdata", SqlDbType.Image ); <br/><br/>paramData.Value = imgdata; <br/><br/>command.Parameters.Add( paramData ); <br/><br/><br/><br/>SqlParameter paramType = new SqlParameter <br/><br/>( "@imgtype", SqlDbType.VarChar,50 ); <br/><br/>paramType.Value = imgtype; <br/><br/>command.Parameters.Add( paramType ); <br/><br/><br/><br/>connection.Open(); <br/><br/>int numRowsAffected = command.ExecuteNonQuery(); <br/><br/>connection.Close(); <br/><br/><br/><br/>从数据库中输出图片 <br/><br/><br/><br/>现在让我们从数据库中取出我们刚刚保存的图片,在这儿,我们将直接将图片输出至浏览器。你也可以将它保存为一个文件或做任何你想做的。 <br/><br/><br/><br/>private void Page_Load(object sender, System.EventArgs e) <br/><br/>{ <br/><br/>string imgid =Request.QueryString["imgid"]; <br/><br/>string connstr=((NameValueCollection) <br/><br/>Context.GetConfig("appSettings"))["connstr"]; <br/><br/>string sql="SELECT imgdata, imgtype FROM ImageStore WHERE id = " <br/><br/>+ imgid; <br/><br/>SqlConnection connection = new SqlConnection(connstr); <br/><br/>SqlCommand command = new SqlCommand(sql, connection); <br/><br/>connection.Open(); <br/><br/>SqlDataReader dr = command.ExecuteReader(); <br/><br/>if(dr.Read()) <br/><br/>{ <br/><br/>Response.ContentType = dr["imgtype"].ToString(); <br/><br/>Response.BinaryWrite( (byte[]) dr["imgdata"] ); <br/><br/>} <br/><br/>connection.Close(); <br/><br/>} <br/><br/><br/><br/>在上面的代码中我们使用了一个已经打开的数据库,通过datareader选择images。接着用Response.BinaryWrite代替Response.Write来显示image文件。</p>

该用户从未签到

升级  30.8%

78
 楼主| 发表于 2006-2-25 12:37:28 | 只看该作者
<p><strong>asp中对ip进行过滤限制函数</strong></p><p></p><hr/><p>&lt;%<br/>'获取访问者的地址<br/>ip=Request.ServerVariables("REMOTE_ADDR") </p><p>'允许的IP地址段为10.0.0.0~10.68.63.255<br/>allowip1="10.0.0.0"<br/>allowip2="10.68.10.71"</p><p>response.write checkip(ip,allowip1,allowip2)</p><p><br/>function checkip(ip,allowip1,allowip2)<br/>dim check(4)<br/>checkip=false<br/>ipstr=split(ip,".")<br/>allow1=split(allowip1,".")<br/>allow2=split(allowip2,".")<br/>if cint(allow1(0))&gt;cint(allow2(0)) then '判断IP地址段是否合法<br/>response.write "IP地址段出错!"<br/>exit function<br/>end if<br/>for i=0 to ubound(ipstr)<br/>if cint(allow1(i))&lt;cint(allow2(i)) then<br/>if cint(allow1(i))=cint(ipstr(i)) then<br/>check(i)=true<br/>checkip=true<br/>exit for<br/>else<br/>if cint(ipstr(i))&lt;cint(allow2(i)) then<br/>check(i)=true<br/>checkip=true<br/>exit for<br/>else<br/>if cint(ipstr(i))&gt;cint(allow2(i)) then<br/>check(i)=false<br/>checkip=false<br/>exit for<br/>else<br/>check(i)=true<br/>checkip=true<br/>end if<br/>end if<br/>end if<br/>else<br/>if cint(allow1(i))&gt;cint(ipstr(i)) or cint(allow1(i))&lt;cint(ipstr(i)) then<br/>check(i)=false<br/>checkip=false<br/>if i&lt;&gt;ubound(ipstr) then<br/>exit for<br/>end if<br/>else<br/>check(i)=true<br/>end if<br/>end if<br/>next</p><p>if (check(0)=true and check(1)=true and check(2)=true and check(3)=false) and (cint(allow2(2))&gt;cint(ipstr(2))) then<br/>checkip=true<br/>end if</p><p>end function<br/>%&gt;</p>

该用户从未签到

升级  30.8%

79
 楼主| 发表于 2006-2-25 12:37:49 | 只看该作者
<p><strong>不用Golobal和session实现在线人数统计 </strong></p><hr/><p>实现在线人数统计最常用的方法就是golobal.asa结合session做,但这种方法有两个不利:<br/>1、每个session要占用12k的服务器内存空间,为了人数+1就要付出12k内存的代价。<br/>2、golobal.asa要放在网站的根目录下才会起作用,而且根目录只能有一个golobal,矛盾突出。<br/>为此,有一种使用cookie和application在asp文件中实现在线统计的方法,欢迎批评指正,共同探讨:<br/>第一步:做一个框架,包含隐藏框架(count.asp)<br/>第二步:编写count.asp<br/>&lt;%<br/>user=request.cookies("21bbsusername")<br/>totaluser=application("user")<br/>if instr(totaluser,user)=0 then<br/>application.lock<br/>application("user")=totaluser&amp;";"&amp;user<br/>application.unlock<br/>end if<br/>%&gt;<br/>&lt;html&gt;<br/>&lt;head&gt;<br/>&lt;meta http-equiv="refresh" content="2"&gt;<br/>&lt;/head&gt;<br/>&lt;body&gt;<br/>&lt;/body&gt;<br/>&lt;/html&gt;<br/>第三步:显示<br/>user=split(application("user"),";")<br/>num=ubound(user)<br/>response.write num </p>

该用户从未签到

升级  30.8%

80
 楼主| 发表于 2006-2-25 12:38:12 | 只看该作者
<p><strong>Flash和Asp数据库的结合应用</strong></p><hr/><p>  在看这个例子之前,先讲讲Flash和Asp结合的原理,其实懂一点ASP的朋友都知道ASP是基于HTML的. <br/>  其实Flash和Asp接口的原理和纯ASP文件之间交互的原理是一样的,简单地说就是页面之间的数据交换。了解了这一点之后,我们来看看下面这个简单的例子: <br/>  这个例子是把ACCESS内的数据读出来,并在Flash内显示出来。这个例子一共有三个主要文件,一个是ACCESS的数据库文件employees.mdb,它有一个employees表,有四个字段:ID,Namelast,Lastname,Position。 </p><p>  现在我们就来看看这个例子的制作过程吧。第一个影帧,ACTION是stop,有一个供用户输入查询字段的文本框:strSearch,一个按钮:submit,它的ACTION是 </p><p>  于 (放开) </p><p>   跳至并播放 (2) </p><p>  退出于 </p><p>  第二个影帧的ACTION是:载入参数 ("employee.asp", 0, vars=GET) </p><p>  这个ACTION的作用是通过ASP文件把ACCESS数据库内符合用户查询条件的数据读出来。 </p><p><br/>  第三个影帧的ACTION是: </p><p>  如果(NameFirst ne "") </p><p>   跳至并停止 (9) </p><p>  退出如果 </p><p>  意思是如果NameFirst不等于空值的话,就跳到第九个影帧;否则将会执行下去(即播放下一个影帧)。 </p><p>  第4-7个影帧都没有ACTION哦。 </p><p>  第八个影帧的ACTION是: </p><p>  跳至并播放 (3) </p><p>  回过头来再看看第三个影帧看看,呵呵,懂了吧? </p><p>  如果没有符合的数据的话,就一直读到有为止;读到了就跳到第九个影帧哦。 </p><p>  那么再来看看第九个影帧: </p><p>  一共有三个文本框:NameFirst,NameLast,Position </p><p>  数据库内符合查询条件的数据将会显示在他们之中哦! </p><p>  还有一个按钮:Do It Again </p><p>  它的ACTION是: </p><p>  于 (放开) </p><p>    跳至并停止 (1) </p><p>  退出于 </p><p>  好了,再来看看employee.asp这个文件吧: </p><p>Dim oRS, oConn ’定义两个变量 <br/>Set oRS = Server.CreateObject("ADODB.Recordset") ’定义oRS为RECORDSET对象 <br/>Set oConn = Server.CreateObject("ADODB.Connection") ’定义oConn为CONNECTION对象 <br/>oConn.ConnectionString = "Driver={Microsoft Access Driver (*.mdb)}; <br/>DBQ=" &amp; Server.MapPath("employees.mdb") <br/>oRS.Open "SELECT * FROM Employees", oConn, 2, 3 <br/>’嘿嘿,这两句不用说了吧?打开数据库哦 <br/>oRS.Find "NameLast = ’" &amp; UCase(Request.QueryString("strSearch")) &amp; "’" <br/>’找到符合条件的数据 </p>
您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

小黑屋|手机版|Archiver|信息系统项目管理师_软考交流平台. ( 鄂ICP备11002878号-1  公安备案号:42011102001150

GMT+8, 2025-7-8 03:32

Software by Discuz! X3.2

© 2001-2013 SKIN BY DSVUE

快速回复 返回顶部 返回列表