第二个灵魂 发表于 2015-1-16 23:22:51

ASP网页设计使用ASP改善文档上载控件

源代码保护方面其实现在考虑得没那么多了..NET也可以反编译.ASP写得复杂的话别人能看得懂的话.他也有能力自己写了.这方面担心的倒不太多.纵观现在网上可以下载的那些所谓BBS还有什么网站等等的源代码控件跟着互联网的开展,人们公布和猎取信息的体例产生了基本的变更,愈来愈多的人入手下手把收集作为最主要的公布和猎取信息的路子,同时,能公布并令信息共享的手艺也愈来愈多。固然这些手艺为开辟职员带来了极年夜的便当,可是因为各种缘故原由,个中有些手艺还存在着如许或那样的缺点。因而,开辟职员在选择和利用各类手艺时,必定要认清这些手艺的长处和范围性,扬长避短,才干计划出功效完美的程序。
提出成绩
笔者曾在建立企业外部信息网工程中开辟过基于Web的文档资本共享信息网站。该网站请求上载的文档能主动在主页中依据文档的种别按文档题目毗连到对应的栏目里。针对这类需求,笔者使用IIS的文档上载控件PostingAcceptorComponents,分离数据库和Web手艺,开辟出了一套主动化水平很高的文档主动网页公布体系和文档主动网页天生体系。在开辟该体系的过程当中,笔者发明IIS下的上载控件cpshost.dll在利用中存在必定的成绩。比方,为完成上载,笔者开辟了两个程序:程序一(Upload.asp)供应基于Web的信息文档上载录进界面;程序二(wd_writer.asp)把程序一录进的信息纪录到数据库中。个中相干代码以下:
程序一(upload.asp):
……
’供应文档上载的客户界面
<formenctype=“multipart/form-data”action=“http://<%=Request.ServerVariables
(“SERVER_NAME”)%>/scripts/cpshost.dll?PUBLISH?wd_writer.asp”method=“post”>
<p>文档主题:<inputtype=“text”name=“subject”><br>
作者:<inputname=“author”type=“text”><br>
公布工夫:<inputname=“date1”type=“text”><br>
上载文档名(点击扫瞄按钮可举行选择):<inputtype=“file”name=“filename”>
DestinationURL:<inputtype=“hidden”name=“TargetURL”
value=“http://<%=Request.ServerVariables(“SERVER_NAME”)%>/users/wdls”>
<inputtype=“submit”value=“公布断定”></p>
</form>
……
程序二(wd_writer.asp):
<%翻开数据库
Setmydata=Server.CreateObject
(“ADODB.Connection”)
mydata.Open“DSN=xczh;UID=sa;PWD=;”
从表单中掏出各项内容
date1=Request.form(“date1”)取工夫
取文档主题
subject=Request.form(“subject”)
取作者
author=Request.form(“subject”)
取文档文件名
filename=Request.form(“filename”)
取文档在Web服务器中寄存的物理地点
TargetURL=Request.form(“filename”)
写数据库
sqlstr=“insertintowdlsbvalues(”&sn&“,‘”&subject&“,‘”&date1&“,‘”&filename&“,‘”&TargetURL&“,‘”&author&“)”
Mydata.Execute(sqlstr)
%>
上述程序的语法布局和逻辑布局都准确无误,但在利用时却呈现了成绩。当在程序一中表单的subject、Author、filename域中填写汉字后,在程序二顶用Request掏出的表单域值为乱码,即不克不及准确从表单中掏出域值。此时,表单举行POST哀求服务时的域值的封装形式(enctype)为“multipart/form-data”,即RFC1867。因而笔者把程序一举行POST哀求服务时的封装形式修正为“text”,但却呈现了“没法上载文档”的毛病。笔者剖析后发明,文档上载控件cpshost.dll只能在表单的“multipart/form-data”封装形式(既RFC1867格局)下才干在扫瞄器与服务器之间举行文档上载。
办理成绩
笔者接纳改动操纵流程的办法,办理了上述成绩。起首,由用户填写表单(程序三Upload.asp),并提交给程序四(wd_read.asp)举行预处置。在程序四中使用session工具临时保留subject、author、date1、filename、targetUrl等表单域的输出值。向用户输入一个确认页面,由用户再次确认表单。然后,设置表单的封装形式为“multipart/form-data”,并举行上载操纵。最初,由cpshost.dll挪用程序五(wd_writer.asp)。由程序五掏出存储于内建工具session中的域值,举行数据库操纵和操纵确认。假如程序四呈现不成展望的毛病,则文档上载失利,不会挪用程序五,因而坚持了数据库的完全性。相干代码以下:
程序三(upload.asp):
<formaction=“http://<%=Request.
ServerVariables(“SERVER_NAME”)>/wd_read.asp”method=“post">
<p>文档主题:<inputtype=“text”name=“subject”><br>
作者:<inputname=“author”type=“text”><br>
公布工夫:<inputname=“date1”type=“text”><br>
上载文档名(点击扫瞄按钮可举行选择):<inputtype=“file”name=“filename”>
DestinationURL:<inputtype=“hidden”name=“TargetURL”value=“http://<%=Request
.ServerVariables(“SERVER_NAME”)%>/users/<%=Request.ServerVariables(“LOGON_USER”)%>”size=“20”><br>
<inputtype=“submit”value=“公布断定”></p>
 </form>
程序四(wd-read.asp):
<%掏出程序三中的表单域值并保留在session中
session(“subject”)=Request.form(“subject”)
session(“date1”)=Request.form(“date1”)
session(“author”)=Request.form(“author”)
session(“filename”)=Request.form(“filename”)
session(“TargetURL”)=Request.form(“TargetURL”)
%>
……
<formenctype=“multipart/form-data”action=
“http://<%=Request.ServerVariables
(“SERVER_NAME”)%>/scripts/cpshost.dll?PUBLISH?wd_writer.asp”method=“post”>
上载文件名(点击扫瞄按钮可举行选择):<inputtype=“file”name=“filename”value=“<%=session(“filename”)%>”>
<inputtype=“hidden”name=“TargetURL”
 value=“http://<%=Request.ServerVariables(“SERVER_NAME”)%>/users/wdls”>
<inputtype=“submit”value=“公布断定”></p>
 </form>
程序五(wd_writer.asp):
<%翻开数据库
Setmydata=Server.CreateObject
(“ADODB.Connection”)
mydata.Open“DSN=xczh;UID=sa;PWD=;”
’取各表单域的值
date1=session(“date1”)取工夫
subject=session(“subject”)取文档主题
author=session(“subject”)取作者
filename=session(“filename”)取文档名
取文档在Web服务器中寄存的物理地点
TargetURL=session(“TargetURL”)
写数据库,保留文档纪录
sqlstr=“insertintowdlsbvalues(”&sn&“,‘”&subject&“,‘”&date1&“,‘”&filename&“,‘”&TargetURL&“,‘”&author&“)”
Mydata.Execute(sqlstr)
%>
完美程序
上述程序固然已能满意计划时的请求,但仍是有必要完美的中央。比方,因为在程序三中输出的文件名在程序四中会预置给表单域filename,以是,一旦客户端从头输出新的文件名后提交确认,会使程序五中写进数据库的文件名与实践上载的文件名纷歧致,形成网页毗连时堕落。为制止出</p>无法实现跨操作系统的应用。当然这也是微软的理由之一,只有这样才能发挥ASP最佳的能力。可是我却认为正是Windows限制了ASP,ASP的概念本就是为一个能让系统运行于一个大的多样化环境而设计的;

只想知道 发表于 2015-1-20 09:43:53

学习ASP其实应该上升到如何学习程序设计这种境界,其实学习程序设计又是接受一种编程思想。比如ASP如何学习,你也许在以前的学习中碰到过。以下我仔细给你说几点:

兰色精灵 发表于 2015-1-22 22:39:54

掌握asp的特性而且一定要知道为什么。

柔情似水 发表于 2015-1-31 07:02:12

完全不知道到底自己学的是什么。最后,除了教程里面说的几个例子,还是什么都不会。

爱飞 发表于 2015-2-2 21:28:50

如何学好ASP,以前也有人问过,把回答给你转过来看看能否对你有帮助:

仓酷云 发表于 2015-2-8 06:09:55

如何学好ASP,以前也有人问过,把回答给你转过来看看能否对你有帮助:

小女巫 发表于 2015-2-24 11:52:46

作为IE上广为流传的动态网页开发技术,ASP以它简单易学博得了广大WEB程序爱好这的青睐,而且它对运行环境和开发品台的不挑剔,以及有大量有效的参考手册,极大的推广了它的发展。

活着的死人 发表于 2015-3-7 12:07:20

Application:这个存储服务端的数据,如果不清除,会直到web应用程序结束才清除(例如重启站点)

admin 发表于 2015-3-15 04:08:45

在平时的学习过程中要注意现学现用,注重运用,在掌握了一定的基础知识后,我们可以尝试做一些网页,也许在开始的时候我们可能会遇到很多问题,比如说如何很好的构建基本框架。

谁可相欹 发表于 2015-3-21 18:03:09

他的语法和设计思路和VB完全相同,导致很多ASP的书都留一句“相关内容请参考VB的相关教材....”更糟糕的是,相当多的ASP教程混合了Javascript,VBscript等等脚本语言,搞的初学者。
页: [1]
查看完整版本: ASP网页设计使用ASP改善文档上载控件