存档

2008年11月 的存档

因为某种原因要实现一个RAR的文件的下载,而且为了节省服务器资源,需要做一个判断,下载引用方法如下:

<input type="button" value="下载工具包" onclick="location.href=’http-localhost-api?/easywork-imageupload-client-full/download/port-80/ver=<%=date%/>.gzip.rar’;">
<input type="button" value="下载升级包" onclick="location.href=’http-localhost-api?/easywork-imageupload-client-fast/download/port-80/ver=<%=date%/>.gzip.rar’;">

初步打算用FSO读取为TextStream,然后用BinaryWrite输出,代码如下:

< %@codepage=65001%>
< %
response.buffer=false
if session("safe_mode")<>"ok" then response.write "<form action=""../../../admin.asp"" method=""post"" id=""a""><script type=""text/javascript"">document.getElementById(""a"").submit();</script>":response.end
if instr(request.Querystring,"/")< =0 then response.redirect "/":response.end
set fso=server.createobject("Scripting.FileSystemObject")
file=server.mappath(split(request.QueryString,"/")(1)&".rar")
if not fso.fileexists(file) then response.redirect "/":response.end
set fto=fso.getfile(file)
set fts=fto.OpenAsTextStream(1,-1)
 
Response.ContentType = "application/octet-stream"
Response.AddHeader "Content-Disposition","attachment;filename="&split(request.QueryString,"/")(1)&".rar"
 
response.binarywrite fts.readall
%>
</form>

实际运行时速度不是很快,可能是fts.readall的原因吧,于是修改一下代码,一行一行的输出:

< %@codepage=936%>
< %
response.buffer=false
if session("safe_mode")<>"ok" then response.write "<form action=""../../../admin.asp"" method=""post"" id=""a""><script type=""text/javascript"">document.getElementById(""a"").submit();</script>":response.end
if instr(request.Querystring,"/")< =0 then response.redirect "/":response.end
set [...]

十一 10th, 2008 | Filed under ASP, Share(分享)
标签: , , ,

前几天转发了一篇关于GooGle提供免费空间的文章(Google提供免费主机空间-Google App Engine 提供5G Python免费空间[http://www.miaoqiyuan.cn/p/google-host-free]),有很多朋友说没有用处,因为只支持Python~
应经由很多人简易支持其他语言,Perl,PHP,C#,Java,不过Google暂时恐怕不支持了,如果想用,只好学习Python咯

汗,忘了,很多朋友是不懂Python的,那有没有必要学习呢?为了一个破免费空间来学习Python是不是浪费时间呢?
这个,我可以负责的告诉你,等你习惯了Python,以后遇到问题是,你想到的第一个解决方法绝对是Python
点击阅读[Python中文文档](http://www.miaoqiyuan.cn/doc/python),很抱歉原作者的网址忘了,先传到我的博客上吧。
简明 Python 教程
Swaroop, C. H. 著
沈洁元  译
www.byteofpython.info
Python语言是少有的一种可以称得上即简单又功能强大的编程语言。你将惊喜地发现Python语言是多么地简单,它注重的是如何解决问题而不是编程语言的语法和结构。
Python的官方介绍是:
Python是一种简单易学,功能强大的编程语言,它有高效率的高层数据结构,简单而有效地实现面向对象编程。Python简洁的语法和对动态输入的支持,再加上解释性语言的本质,使得它在大多数平台上的许多领域都是一个理想的脚本语言,特别适用于快速的应用程序开发。
Python is a dynamic object-oriented programming language that can be used for many kinds of software development. It offers strong support for integration with other languages and tools, comes with extensive standard libraries, and can be learned in a few days. Many Python programmers report substantial [...]

十一 9th, 2008 | Filed under Share(分享)
标签: ,

什么是 GUID?
全球唯一标识符 (GUID) 是一个字母数字标识符,用于指示产品的唯一性安装。在许多流行软件应用程序(例如 Web 浏览器和媒体播放器)中,都使用 GUID。
GUID 的格式为“xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx”,其中每个 x 是 0-9 或 a-f 范围内的一个十六进制的数字。例如:6F9619FF-8B86-D011-B42D-00C04FC964FF 即为有效的 GUID 值。
为什么要用GUID?
世界上的任何两台计算机都不会生成重复的 GUID 值。GUID 主要用于在拥有多个节点、多台计算机的网络或系统中,分配必须具有唯一性的标识符。在 Windows 平台上,GUID 应用非常广泛:注册表、类及接口标识、数据库、甚至自动生成的机器名、目录名等。
asp下生成guid的代码
<%
Dim objTypeLib
Set objTypeLib = CreateObject(“Scriptlet.TypeLib”)
Response.Write objTypeLib.Guid
%>
php下生成guid要用到class .
guid.class.guid
<?
class  System
{
                function  currentTimeMillis()
                {
                                list($usec,  $sec)  =  explode(“  ”,microtime());
                                return  $sec.substr($usec,  2,  3);
                }
}
class  NetAddress
{
                var  $Name  =  ’localhost’;
                var  $IP  =  ’127.0.0.1′;
                function  getLocalHost()  //  static
                {
                                $address  =  new  NetAddress();
                                $address->Name  =  $_ENV["COMPUTERNAME"];
                                $address->IP  =  $_SERVER["SERVER_ADDR"];
                                return  $address;
                }
                function  toString()
                {
                                return  strtolower($this->Name.’/’.$this->IP);
                }
}
class  Random
{
                function  nextLong()
                {
                                $tmp  =  rand(0,1)?’-’:”;
                                return  $tmp.rand(1000,  9999).rand(1000,  9999).rand(1000,  9999).rand(100,  999).rand(100,  999);
                }
}
//  三段
//  一段是微秒  一段是地址  一段是随机数
class  Guid
{
                var  $valueBeforeMD5;
                var  $valueAfterMD5;
                function  Guid()
                {
                                $this->getGuid();
                }
//
                function  getGuid()
                {
                                $address  =  NetAddress::getLocalHost();
                                $this->valueBeforeMD5  =  $address->toString().’:’.System::currentTimeMillis().’:’.Random::nextLong();
                                $this->valueAfterMD5  =  md5($this->valueBeforeMD5);
                }
                function  newGuid()
                {
                                $Guid  =  new  Guid();
                                return  $Guid;
                }
                function  toString()
                {
                                $raw  =  strtoupper($this->valueAfterMD5);
                                return  substr($raw,0,8).’-’.substr($raw,8,4).’-’.substr($raw,12,4).’-’.substr($raw,16,4).’-’.substr($raw,20);
                }
}
?>
guid.php
<?php
require_once(“guid.class.php”);
$Guid = new Guid();
print $Guid->toString();
?>

十一 7th, 2008 | Filed under Share(分享)
标签:

 
Google App Engine是Google推出的免费虚拟主机空间,其实这比一般虚拟主机强悍的多,你可以利用Google App Engine工具来开发网站或制作网络应用程序,Google会在自己的庞大服务器集群上为你提供空间、带宽、资源等。目前Google App Engine为每个用户提供10个Application(简称App),每个App有500M免费空间,每个App限制1000个文件,单个文件1M以内,每天流量20G。每个App提供免费二级域名1个,同时也可绑米。目前还仅支持Python一种语言脚本,不支持PHP、Perl、ASP等。
注意:这是Google面向程序开发人员提供的一项免费服务,如果你对Python不了解也不感兴趣建议不要申请,虽然很强悍但使用起来比任何一个免费空间都麻烦。
5G Python免费空间,Google免费提供
网址:http://appengine.google.com
如果你使用Google Apps,可以用“http://appengine.google.com/a/你的域名/”这个地址来申请,如果你要绑定域名,仅能绑定申请了Google Apps服务的域名。另外,申请的时候需要填写手机号码,会给你发送确认码来确认申请,目前Google在中国仅支持中国联通,所以要用联通手机申请才能收到确认码,如果你用的不是联通手机,那就无缘Google App Engine了,且一个手机只能申请一个帐户。
官方入门指南:http://code.google.com/appengine/docs/gettingstarted
Google提供主机空间的服务:Google App Engine

目前官方仅有英文版入门指南,所以在网上找了个网友翻译的中文版给大家做参考,有兴趣仔细看看吧。

配额限制:http://code.google.com/appengine/articles/quotas.html
Google App Engine详细配额限制,很全面。你的程序上传运行后,在Google App Engine的管理面板中可以看到配额使用情况。
Python运行限制:http://code.google.com/appengine/docs/python
Google提供5G免费主机空间
Google App Engine中的Python是运行在一个受限的环境中,例如:对操作系统的底层调用、网络操作以及一些文件系统操作都是不允许的,尝试这些操作时会引起错误。
用Python语言进行Google Web API 编程相当简洁,这一点从下面的脚本与交互式实例演示中可以看出来。
使用Python 进行Google Web API编程就像品尝点心,幸亏Mark Pilgrim提供了PyGoogle封装模块(http://pygoogle.sourceforge.net/)——现在由Brian Landers维护。PyGoogle抽象了底层的SOAP、XML与请求/响应层,节省了大量处理数据的时间。
Google提供提供5G Python免费空间
PyGoogle的安装
下载一个PyGoogle拷贝(http://sourceforge.net/project/showfiles.php?group_ id=99616),然后按照安装指令(http://diveintomark.org/projects/pygoogle/ readme.txt)进行安装。假设一切顺利,安装过程就会像下面一样简单:
% python setup.py install
如果你想试试不安装PyGoogle的情况,或者你没有获取在系统上安装软件的权限,这里会为你提供一个替换方案:直接将SOAP.py、google.py与脚本googly.py放在同一目录下。
代码实现
下面的代码保存到文本文件中,命名为googly.py。记得在使用之前,将代码中的insert key here替换成用户自己的Google 开发者密钥。

运行这个hack
像下面一样在命令行调用脚本[见前言“如何运行hack”]:

如下为一运行搜索python的示例:

活学活用
Python有一个神奇的接口,通过这个接口,可与解析器进行交互。这对于PyGoogle这样的模块来说,是再好不过的实验场,你可以通过这个接口快捷地查询Google API,研究它返回的数据结构。
下面是一个示例性的交互式PyGoogle会话过程,演示了doGoogleSearch、doGetCachedPage与doSpellingSuggestion等函数的用法。

十一 6th, 2008 | Filed under Share(分享)
标签:

 

<FORM ACTION=”<% = Request.ServerVariables(“PATH_INFO”) %>” METHOD=”POST”>

  同样的效果可以用HTTP的“SCRIPT_NAME”值获得:

<FORM ACTION=”<% = Request.ServerVariables(“SCRIPT_NAME”) %>” METHOD=”POST”>

  使用<A>元素打开一个不同页,可以使用:


<%
strFullPath = Request.ServerVariables(“PATH_INFO”)
‘Strip off the file name
strPathOnly = Left(strFullPath, InStrRev(strFullPath, “/”))
strNextPage = strPathOnly & “pages/next_page.asp”
%>

<A HREF=”<% = strNextPage %>”>Next Page</A>

  即使原始页面的名称或位置发生变化,这些实例都能正常工作,因为使用了当前页面的路径信息(当然,第二个例子在分离的目标页的名称发生变化时运行会失败)。
  换句话说,如果为搜索引擎的子会话自动建立URL,可以收集ServerVariable的一些值:

strFullURL = http:// & Request.ServerVariables(“LOCAL_ADDR”) _
& “:” & Request.ServerVariables(“SERVER_PORT”) _
& Request.ServerVariables(“PATH_INFO”)

  这将创建一个完整的URL包括端口号(这种情况下,不是标准值80)。例如,结果可能是:

http://194.74.60.254:1768/thispath/thispage.asp

  检测浏览器的版本
  ServerVariables集合中,另外一个有用的值是用户浏览器的用户代理字符串。在“Detecting the Browser Type”页面(browsertype.asp),使用ServerVariables集合中的“HTTP_USER_AGENT”值来获得用户代理字符串,一些脚本用来解析该信息并寻找生产厂家名称和浏览器版本。

<%
strUA = Request.ServerVariables(“HTTP_USER_AGENT”)
Response.Write “The User Agent string is <B>” & strUA & “</B>

If [...]

十一 6th, 2008 | Filed under Life(生活)

刚写个一篇激活Vista的烂文,现在在此烂文截图的基础上扩展一下,Vista的界面就是漂亮,特别是窗口方面,太漂亮了。
实用该图作为背景,来写个有Vista边框的框架吧~后边的窗口直接用Iframe,前边用div,分三层,背景,iframe,前端DIV,因为实在vista中的截图,现在在win2003下,不能截图,仅有一张背景图,所以要div层叠在iframe上,而且还要实用背景图,有点难度,不过这样正好可以来练习练习CSS,好久没写了
不想写了,代码写了两三个小时,效果如下:http://www.miaoqiyuan.cn/Products/vista-bg-test.htm
直接发代码了
 

<style type="text/css">
body{background:url(‘vista.jpg’);background-repeat:no-repeat;padding:0px;margin:0px;overflow:hidden}
div{position:absolute;z-index:999;margin-left:472px;margin-top:264px;margin-right:0px;width:534px;height:341px;background:url(‘vista.jpg’) #333;background-position:-472px -264px;background-repeat:no-repeat;}
a{border:#FEE solid 1px;display:block;background:#F8F8F8;height:40px;margin-left:46px;margin-top:8px;line-height:40px;font-size:24px;font-family:黑体;text-indent:2em;color:#8B859F;text-decoration:none;font-weight:800}
a.s1{height:55px;line-height:55px;margin-top:118px;}
a strong{font-size:18px;font-weight:400;color:#999}
a span{display:none}
a:hover{color:#000;border:#666 solid 1px;}
a:hover strong{display:none;}
a:hover span{display:inline;padding-left:20px;font-size:16px;color:#F00;font-weight:400;font-family:宋体}
iframe{margin-left:102px;margin-top:110px;width:782px;border:none;height:497px;}
input{margin:0px;margin-top:5px;height:25px;font-size:22px;}
</style>
<body>
<div>
<a class="s1" href="About:电影@远通" onclick="this.href=’ftp://www.yuantong’" onblur="this.href=’About:电影@远通’" target="_blank">电影<strong>(Moives)</strong><span>点击打开电影库,可以通过迅雷下载哦</span></a>
<a href="About:软件@远通" onclick="this.href=’ftp://www.yuantong/install’" onblur="this.href=’About:软件@远通’" target="_blank">软件<strong>(Softwares)</strong><span>点击打开软件库,各类软件应有尽有</span></a>
<a href="About:资询@远通" onclick="document.getElementById(‘locaweb’).src=’http://miaoqiyuan.cn’;return false;">主页<strong>(How to use?)</strong><span>点击访问飞猫主要寻找帮助信息</span></a>
<a href="About:上网@远通" onclick="return false;">上网<strong>(Internet)</strong><span><input id="url" value="请输入网址或关键字" size="28" onmouseout="this.blur();if(this.value==”)this.value=’请输入网址或关键字’;" onclick="this.value=”" /><input type="button" value="Go" onclick="document.getElementById(‘locaweb’).src=’loadweb.html?url=’+document.getElementById(‘url’).value;" /></span></a>
</div>
<iframe src="http://www.miaoqiyuan.cn" id="locaweb" ></iframe>
</body>

十一 3rd, 2008 | Filed under Div+CSS
标签: ,