仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 409|回复: 8
打印 上一主题 下一主题

[学习教程] ASP网站制作之ASP跨服务器上传文件完善办理

[复制链接]
海妖 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:13:42 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
因为现在数据库都使用标准的SQL语言对数据库进行管理,所以如果是标准SQL语言,两者基本上都可以通用的。SQLServer还有更多的扩展,可以用存储过程,数据库大小无极限限制。服务器|办理|上传  假如你有两个空间,一个年夜而慢,别的一个小而快,大概个中一个不撑持FSO,那末跨服务器上传文件这个成绩就摆在你眼前了,上面就是我在办理ylog.net内里的跨服务器上传文件的日志,这个成绩看似复杂,内里的细节成绩倒是十分风趣
  条件前提,空间都必需撑持ASP,上传文件的服务器撑持FSO,上面的叙说中,diygame.com为存上传文件的服务器,ylog.net为网站服务器,即显现用户界面的服务器...
  完成功效,文件上传,上传后在网页的文本地区主动加上关于图片的UBB码,为了分明,上面列出一切用到的文件
服务器文件名用处
diygame.comblog_upfile.asp吸收上传文件用
ylog.netblog_add.asp增加BLOG,上传文件功效在此呈现
ylog.netblog_upload.asp上传文件表单,以iframe的情势嵌在blog_add.asp里
ylog.netblog_upresult.asp显现上传了局,作善后事情
ylog.netblog_upcheck.asp考证用户名与暗码
在公布BLOG页面Blog_add.asp增添一个iFrame,挪用blog_upload.asp举行上传操纵
<iframeborder="0"frameBorder="0"frameSpacing="0"height="25"marginHeight="0"marginWidth="0"noResizescrolling="no"width="100%"vspale="0"src="blog_upload.asp"></iframe>
假如你玩过ASP,天然不费吹灰之力想到,文件要传到别的一个服务器上,只需把blog_upload.asp里的上传Form的action页面指向方针服务器就好了,
<formname="form"method="post"action="http://www.diygame.com/blog_UPFILE.ASP"
//两头略往
//提交时把公布BLOG的按纽disable先,以避免没传完就时用户把BLOG宣布了
<inputtype="submit"class=buttonname="Submit"value="上传">
测试一下,文件上传乐成,那主动加UBB代码呢...
在http://www.diygame.com/blog_UPFILE.ASP里加一句js剧本
<script>parent.frmAnnounce.Content.value+=</script>传上往再测试,毛病提醒"blog_UPFILE.ASP权限不敷",既然diygame.com的文件权限不敷,ylog.net总能够吧,当blog_upfile.asp操纵完成时,再挪用一个本服务器的ASP文件,因而blog_upresult.asp呈现了,他卖力善后
修正blog_upfile.asp,我用C++的习气,正文用//符
servername="www.ylog.net"//标记服务器名
//反省来历,是不是为本人指定的服务器,
ifnotinstr(1,Request.ServerVariables("http_Referer"),servername,1)=8then
response.write"不法来历~!"
response.end
endif
//反省文件巨细,范例,等,这些代码略往,网上良多关于FSO组件的先容
...
//上传代码,略往
....
//乐成后转向的URL,就是实行上传操纵的地点,把信息看成msg传已往
url="http://"&servername&"/blog_upresult.asp?msg="
if上传乐成then//把剧本传已往,由于JS中的+号不克不及被传送.因而利用server.urlencode函数,此剧本在ylog.net上才有权限运转
url=url+"<script>parent.frmAnnounce.Content.value"&server.urlencode("+")&"=</script>"
//把文件名也传送已往,以便存数据库备查
response.redirecturl+"上传乐成&filename="&FileName
endif
上面就是blog_upresult.asp上的代码了,很复杂
//传乐成了,天然要把已diable的提交BLOG按纽恢复
<script>
parent.frmAnnounce.Submit.disabled=false;
</script>
//另有就是把传过去的信息显现出来
response.writerequest("msg")
//假如request("filename")""写进数据库代码省略
response.write"[<ahref=#onclick=history.go(-1)>从头上传</a>]"
看上往perfect了,但如人家失掉了你的源码的话,十拿九稳把你的上传服务器当做收集硬盘用....
只需把hosts文件里的中一句127.0.0.1www.ylog.net
然后响应写一个提交文件用的blog_upload.asp就好了,
头疼ing,代码是不克不及同意有半点平安毛病的,考证的域名能被棍骗,
那就考证上传者的用户名与暗码,diygame.com怎样往ylog.net的数据库上往查询用户名与暗码是不是准确呢
这就少不了xmlhttp
先在ylog.net上做一个blog_upcheck.asp,内容十分复杂,对传的用户名与暗码考证,乐成则输入1,失利则输入0
<%
name=request("name")
psw=request("psw")
checkstr(name)//滤失落SQL字符
checkstr(psw))//滤失落SQL字符
if从数据库反省用户名=乐成then
response.write0
else
response.write1
endif
%>
blog_upfile.asp承受上传之前先挪用此文件考证.上面为代码,固然也是利用域名www.ylog.net但此操纵在diygame.com的服务器上实行,以是与利用者当地的hosts文件有关
<%
str=getHTTPPage("http://"&servername&"/blog_upcheck.asp?name="&name&"&psw="&password)
ifstr"1"then
response.write"不法用户~!"
response.end
endif
//两个操纵函数。十分有效,能够用到其余中央
FunctiongetHTTPPage(URL)
SetHTTPReq=Server.createobject("Microsoft.XMLHTTP")
HTTPReq.Open"GET",URL,False
HTTPReq.send
IfHTTPReq.readyState4ThenExitFunction
getHTTPPage=bytes2BSTR(HTTPReq.responseBody)
SetHTTPReq=Nothing
EndFunction
Functionbytes2BSTR(vIn)
DimstrReturn
DimI,ThisCharCode,NextCharCode
strReturn=""
ForI=1ToLenB(vIn)
ThisCharCode=AscB(MidB(vIn,I,1))
IfThisCharCode<&H80Then
strReturn=strReturn&Chr(ThisCharCode)
Else
NextCharCode=AscB(MidB(vIn,I+1,1))
strReturn=strReturn&Chr(CLng(ThisCharCode)*&H100+CInt(NextCharCode))
I=I+1
EndIf
Next
bytes2BSTR=strReturn
EndFunction
%>
  做到这个中央,终究能够松口吻了,写的很乱,但愿能委曲看懂。。。
  假如你有更好的办法大概有甚么看不懂的中央,接待来我的BLOG交换,网址在下面已呈现过良多遍
由于ASP还是一种Script语言所没除了大量使用组件外,没有办法提高其工作效率。它必须面对即时编绎的时间考验,同时我们还不知其背后的组件会是一个什么样的状况;
若相依 该用户已被删除
沙发
发表于 2015-1-19 05:12:46 | 只看该作者
他的语法和设计思路和VB完全相同,导致很多ASP的书都留一句“相关内容请参考VB的相关教材....”更糟糕的是,相当多的ASP教程混合了Javascript,VBscript等等脚本语言,搞的初学者。
兰色精灵 该用户已被删除
板凳
发表于 2015-1-26 09:41:52 | 只看该作者
下面简单介绍一下我学习ASP的方法,希望对想学习ASP的朋友有所帮助...
不帅 该用户已被删除
地板
发表于 2015-2-4 14:12:27 | 只看该作者
运用经典的例子。并且自己可以用他来实现一些简单的系统。如果可以对他进行进一步的修改,找出你觉得可以提高性能的地方,加上自己的设计,那就更上一个层次了,也就会真正地感到有所收获。
变相怪杰 该用户已被删除
5#
发表于 2015-2-10 01:54:24 | 只看该作者
跟学别的语言一样,先掌握变量,流程控制语句(就是ifwhileselect)等,函数/过程,数组
飘飘悠悠 该用户已被删除
6#
发表于 2015-2-28 15:34:35 | 只看该作者
运用经典的例子。并且自己可以用他来实现一些简单的系统。如果可以对他进行进一步的修改,找出你觉得可以提高性能的地方,加上自己的设计,那就更上一个层次了,也就会真正地感到有所收获。
再见西城 该用户已被删除
7#
发表于 2015-3-10 01:41:23 | 只看该作者
ASP主要是用好六个对象,其实最主要的是用好其中两个:response和request,就可以随心所欲地控制网页变换和响应用户动作了。
老尸 该用户已被删除
8#
发表于 2015-3-17 04:11:00 | 只看该作者
Response:从字面上讲是“响应”,因此这个是服务端向客户端发送东西的,例如Response.Write
第二个灵魂 该用户已被删除
9#
发表于 2015-3-23 19:11:24 | 只看该作者
尽管MS自己讲C#内核中更多的象VC,但实际上我还是认为它和Java更象一些吧。首先它是面向对象的编程语言,而不是一种脚本,所以它具有面向对象编程语言的一切特性,比如封装性、继承性、多态性等等,这就解决了刚才谈到的ASP的那些弱点。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-24 03:17

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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