Posts Tagged ‘浏览’

兼容各个浏览器的技巧

星期三, 06月 4th, 2008

1,盒解释器de不同解释.

#box{ width:600px; //for ie6.0- w\idth:500px; //for ff ie6.0}#box{ width:600px!important //for ff width:600px; //for ff ie6.0 width /**/:500px; //for ie6.0-}
2,在ie中隐藏css,使用子选择器

html>body #box{ }
3,只有ie识别

*html #box{ }
4,在ie/win有效而ie/max隐藏,使用反斜杠

/* \ */
#box{ }
5,给ie单独定义样式 这里更加详细de说明

6,浮动ie产生de双倍距离

#box{ float:left; width:100px; margin:0 0 0 100px; //这种情况之下IE会产生200pxde距离 display:inline; //使浮动忽略}
这里细说一下block,inline两个元素,Block元素de特点是:总是在新行上开始,高度,宽度,行高,边距都可以控制(块元素);Inline元素de特点是:和其他元素在同一行上,…不可控制(内嵌元素);

#box{ display:block; //可以为内嵌元素模拟为块元素 display:inline; //实现同一行排列dede效果 diplay:table; //for ff,模拟tablede效果}
7,for oprea only

@media all and (min-width:0px){/* opera */#box{ }}
8,IE与宽度和高度de问题

IE不认得min-这个定义,但实际上它把正常dewidth和height当作有minde情况来使.这样问题就大了,如果只用宽度和高度,
正常de浏览器里这两个值就不会变,如果只用min-width和min-heightde话,IE下面根本等于没有设置宽度和高度.

比如要设置背景图片,这个宽度是比较重要de.要解决这个问题,可以这样:

#box{ width: 80px; height: 35px;}html>body #box{ width: auto; height: auto; min-width: 80px; min-height: 35px;}
9,页面de最小宽度

min-width是个非常方便deCSS命令,它可以指定元素最小也不能小于某个宽度,这样就能保证排版一直正确.但IE不认得这个,而它实际上把width当做最小宽度来使.为了让这一命令在IE上也能用,可以把一个<div> 放到 <body> 标签下,然后为div指定一个类:


然后CSS这样设计:
#container{ min-width: 600px; width:expression(document.body.clientWidth < 600? “600px”: “auto” );}
第一个min-width是正常de;但第2行dewidth使用了Javascript,这只有IE才认得,这也会让您deHTML文档不太正规.它实际上通过Javascriptde判断来实现最小宽度.

同样de办法也可以为IE实现最大宽度:

#container{min-width: 600px;max-width: 1200px;width:expression(document.body.clientWidth < 600? “600px” : document.body.clientWidth > 1200? ”1200px“ : ”auto”;}
10,清除浮动

.hackbox{ display:table; //将对象作为块元素级de表格显示}或者.hackbox{ clear:both;}
或者加入:after(伪对象),设置在对象后发生de内容,通常和content配合使用,IE不支持此伪对象,非Ie 浏览器支持,所以并不影响到IE/WIN浏览器.——-这种de最麻烦de……

#box:after{ content: “.”; display: block; height: 0; clear: both; visibility: hidden;}
11,DIV浮动IE文本产生3象素debug

左边对象浮动,右边采用外补丁de左边距来定位,右边对象内de文本会离左边有3pxde间距.

#box{ float:left; width:800px;}#left{ float:left; width:50%;}#right{ width:50%;}*html #left{ margin-right:-3px; //这句是关键}
HTML相关代码<div id=”box”> <div id=”left”></div> <div id=”right”></div></div>
12,属性选择器(这个不能算是兼容,是隐藏cssde一个bug)

p[id]{}div[id]{}
这个对于IE6.0和IE6.0以下de版本都隐藏,FF和OPera作用

属性选择器和子选择器还是有区别de,子选择器de范围从形式来说缩小了,属性选择器de范围比较大,如p[id]中,所有p标签中有idde都是同样式de.

待续…

Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=592516

针对浏览器隐藏CSS

星期三, 06月 4th, 2008

  我都知道浏览器之间是有差异de,很多人在使用XHTML CSS方式制作网页de时候都曾为此无比头痛.要在这些差异de影响下工作需要很多de技巧,隐藏CSS”就是其中很重要de一种技巧(甚至是最重要de).这种技巧de主要思想是,用某些方式对某些浏览器隐藏某些重载deCSS规则.

  这篇文章并不是想教您如何使用这种技巧,它面向de是有一定CSS基础de设计开发者,我假定您曾经使用过某种隐藏CSS规则de方法.这里是想把可用de方法与被隐藏规则de浏览器都列出来,方便大家在平时工作时随时查阅.

  在这张大表里列出了九种方法,我就称其为独孤九剑,希望能帮上您de忙 :-D

注:此表格原载 w3development.de.

  看完这张表之后我de第一反应是:MozillaOpera真乃神人也.只有一条规则会对Opera最老de一个版本起作用,所以后面我在讲到隐藏规则de时候基本上就不考虑MozillaOpera了.下面列出这九种剑法de招数,同时在旁边也注上了我个人推荐de使用场合.注意,我推荐de不一定与您de需求相符,使用前请对照上面de表格.

@import url(”")

@import url(”global.css”)

  对老版本(版号小于5)de浏览器隐藏规则.

@import url()

@import url(global.css)

  对Windows平台de老版本(版号小于5)浏览器隐藏规则.

@import “”

@import “global.css”

  对Windows平台de老版本(版号小于5)浏览器隐藏规则.

media=”"

<link href=”global.css” type=”text/css” rel=”stylesheet” media=”all”/>

  对Netscape 4.x隐藏规则.

@media

@media all {

… /* 需要隐藏de规则 */

}

  如果只考虑NNIEde话就是只对4.x版本隐藏规则.

comment

#anySelector/* */ { color:#f00; }

  这可是精确制导导弹.只对IE5及以下版本隐藏规则.所以如果要把IE5IE5.5分开定义规则,那就靠它了.

attribute

p[id] { color: #0f0; }

  又一个精确制导导弹.如果不关心老版本浏览器,那就是只对IE隐藏规则.关于属性选择器de更多信息请看W3Cde文档.

child

p>span { color: #00f; }

  基本同上,只是Mac平台部分版本deIE支持这个规则.

Tantek

p#tantek {

  voice-family: “\”}\”"; /* 某些浏览器有解析bug */

  voice-family: inherit; /* 在这以下de规则都会被忽略 */

  color: #f00;

}

  著名de隐藏CSS技巧,对所有非现代浏览器隐藏规则

动态CSS站点教程:多个页面样式提供浏览者选择

星期三, 06月 4th, 2008

在cnbruce’’s blog上看到这个即时换STYLEde相关代码,觉得不错就COPY过来备用.
在见de例子就是:一个站点上有多个页面样式提供浏览者选择.同时,在选择了某样式后,再次打开该页面时,将仍然保持该样式.自然会想到了Cookie技术.


程序相关代码
<HTML>
<HEAD>
<link ID=”skin” rel=”stylesheet” type=”text/css”>
<TITLE>换肤技术</TITLE>
<SCRIPT LANGUAGE=javascript>
<!–
function SetCookie(name,value){
var argv=SetCookie.arguments;
var argc=SetCookie.arguments.length;
var expires=(2<argc)?argv[2]:null;
var path=(3<argc)?argv[3]:null;
var domain=(4<argc)?argv[4]:null;
var secure=(5<argc)?argv[5]:false;
document.cookie=name “=” escape(value) ((expires==null)?”":(”; expires=” expires.toGMTString())) ((path==null)?”":(”; path=” path)) ((domain==null)?”":(”; domain=” domain)) ((secure==true)?”; secure”:”");
}

function GetCookie(Name) {
var search = Name “=”;
var returnvalue = “”;
if (document.cookie.length > 0) {
offset = document.cookie.indexOf(search);
if (offset != -1) {
offset = search.length;
end = document.cookie.indexOf(”;”, offset);
if (end == -1)
end = document.cookie.length;
returnvalue=unescape(document.cookie.substring(offset,end));
}
}
return returnvalue;
}

var thisskin;
thisskin=GetCookie(”nowskin”);
if(thisskin!=”")
skin.href=thisskin;
else
skin.href=”css.css”;

function changecss(url){
if(url!=”"){
skin.href=url;
var expdate=new Date();
expdate.setTime(expdate.getTime() (24*60*60*1000*30));
//expdate=null;
//以下设置COOKIES时间为1年,自己随便设置该时间..
SetCookie(”nowskin”,url,expdate,”/”,null,false);
}
}
//–>
</SCRIPT>
</HEAD>
<BODY>

<P>请选择下面de下拉菜单测试换肤效果</P>

<a href=# onclick=”changecss(”css.css”)”>css.css</a>
<a href=# onclick=”changecss(”css1.css”)”>css1.css</a>
<a href=# onclick=”changecss(”css2.css”)”>css2.css</a>
<a href=# onclick=”changecss(”css3.css”)”>css3.css</a>
<br>

<select onchange=”changecss(this.value)”>
<option>选择样式单文件</option>
<script language=”javascript”>
var csss=new Array();
csss[0]=”css.css”;
csss[1]=”css1.css”;
csss[2]=”css2.css”;
csss[3]=”css3.css”;
var i;
for(i=0;i<4;i )
if(thisskin==csss[i])
document.write(”<option value=\”" csss[i] “\” selected>” csss[i] “样式单文件</option>”);
else
document.write(”<option value=\”" csss[i] “\”>” csss[i] “样式单文件</option>”);
</script>
</select>
</BODY>
</HTML>

JSP实现浏览器关闭cookies情况下的会话管理

星期一, 06月 2nd, 2008

通常,会话管理是通过服务器将 Session ID 作为一个 cookie 存储在用户de Web 浏览器中来唯一标识每个用户会话.如果浏览器不支持 cookies,或者将浏览器设置为不接受 cookies,我可以通过 URL 重写来实现会话管理.
  实质上 URL 重写是通过向 URL 连接添加参数,并把 session ID 作为值包含在连接中.然而,为使这生效,您需要为您de servlet 响应部分de每个连接添加 session ID .
   把 session ID 加到一个连接可以使用一对方法来简化:response.encodeURL() 使 URL 包含 session ID,如果您需要使用重定向,可以使用 response.encodeRedirectURL () 来对 URL 进行编码.
  encodeURL () 及 encodeRedirectedURL () 方法首先判断 cookies 是否被浏览器支持;如果支持,则参数 URL 被原样返回,session ID 将通过 cookies 来维持.
  来看下面de例子,两个 JSP 文件:hello1.jsp 和 hello2.jsp,及它们之间de影响.我在 hello1.jsp 中简单de创建一个会话,并在 session 中存储一个对象实例.接着用户可以点击页面de连接到达 hello2.jsp.在 hello2.jsp 中,我从 session 中获取原先放置de对象并显示它de内容.注意,我在 hello1.jsp 中调用了 encodeURL() 方法来获得 hello2.jsp de链接,使得在浏览器停用 cookies de情况下,session ID 自动添加到 URL,hello2.jsp 仍能得到 session 对象.
  首先在启用 cookies de情况下运行.然后关闭对 cookie de支持,重启浏览器,再运行一次.每次您都可以看到会话管理在起作用,并能在页之间传递信息.
注意,如果您想让这个例子能在关闭了 cookies de浏览器中工作,您de JSP 引擎必须支持 URL 重写.

hello1.jsp

<%@ page session="true" %>
<%
Integer num = new Integer(100);
session.putValue("num",num);
String url =response.encodeURL("hello2.jsp");
%>
<a href=’<%=url%>’>hello2.jsp</a>
hello2.jsp

<%@ page session="true" %>
<%
Integer i= (Integer)session.getValue("num");
out.println("Num value in session is " i.intValue());
%>

axeon于2000-08-03 11:05:38发送
Copyright © 2000 www.jsper.com All rights reserved.
The catalog script used on this site was written by axeon
站务联系: [axeonOICQ:1684897 ICQ:75795533]

图片存储与浏览一例(Linux Apache PHP MySQL)

星期一, 06月 2nd, 2008

注意本程序使用de表结构为:
use test;
create table image(
id int unsigned auto_increment primary key,
description text,
filename varchar(50),
filesize int,
filetype varchar(50),
filedata longblob
);
*/
//?cmd={read|list|form|store}
//检查cmd参数de合法性
switch($cmd){
case ‘read’:
break;
case ‘list’:
break;
case ‘form’:
break;
Case ’store’:
break;
default:
$cmd = ‘list’;
break;
}
switch($cmd){
case ‘read’:
//?cmd=read&id={}
//读一个图片
$server = mysql_connect("localhost","test","") or die("无法连接数据库服务器");
mysql_select_db("test",$server) or die("无法连接数据库");
$sql = "select filetype,filedata from image where id=’$id’";
$rst = mysql_query($sql,$server) or die("$sql查询出错");
if($row=mysql_fetch_row($rst)){
header("Content-Type:" . $row[0]);
echo $row[1];
}
else{
echo "没有找到该记录";
}
mysql_free_result($rst);
mysql_close($server) or die("无法与数据库服务器断开连接");
break;
case ‘list’:
//?cmd=list
//显示所有图片
echo ‘<html>’;
echo ‘<head><title>图片存储与浏览一例</title></head>’;
echo ‘<body>’;
echo ‘<a href="’ . $PHP_SELF . ‘?cmd=list">显示所有图片</a>’;
echo " ";
echo ‘<a href="’ . $PHP_SELF . ‘?cmd=form">上传图片</a>’;
$server = mysql_connect("localhost","test","") or die("无法连接数据库服务器");
mysql_select_db("test",$server) or die("无法连接数据库");
$sql = "select id,description,filename,filetype,filesize from image";
$rst = mysql_query($sql,$server) or die("$sql查询出错");
while($row=mysql_fetch_row($rst)){
echo "<hr>";
echo "描述:" . $row[1] . "<br>";
echo "文件名:" . $row[2] . "<br>";
echo "类型:" . $row[3] . "<br>";
echo "大小:" . $row[4] . "<br>";
echo ‘<img src="’ . $PHP_SELF . ‘?cmd=read&id=’ . $row[0] . ‘">’;
}
mysql_free_result($rst);
mysql_close($server) or die("无法与数据库服务器断开连接");
echo ‘</body>’;
echo ‘</html>’;
break;
case ‘form’:
?>
<html>
<head><title>图片存储与浏览一例</title></head>
<body>
<form action="<?echo $PHP_SELF;?>?cmd=store" method="post" enctype="multipart/form-data">
<input type="hidden" name="MAX_FILE_SIZE" value="2097152">
描述:<br>
<textarea name="description" rows="5" cols="100"></textarea><br>
文件:<input type="file" name="file"><br>
<input type="submit" value="上传">
</form>
</body>
</html>
<?
break;
case ’store’:
//?cmd=store&description={}&file={}&file_size={}&file_type={}&file_name={}
//存储图片
echo ‘<html>’;
echo ‘<head><title>图片存储与浏览一例</title></head>’;
echo ‘<body>’;
echo ‘<a href="’ . $PHP_SELF . ‘?cmd=list">显示所有图片</a>’;
echo " ";
echo ‘<a href="’ . $PHP_SELF . ‘?cmd=form">上传图片</a>’;
$server = mysql_connect("localhost","test","") or die("无法连接数据库服务器");
mysql_select_db("test",$server) or die("无法连接数据库");
$data = addslashes(fread(fopen($file,"r"),filesize($file)));
$sql = "insert into image(description,filename,filetype,filesize,filedata)
values(’$description’,'" . basename($file_name) . "’,'$file_type’,$file_size,’$data’)";
mysql_query($sql,$server) or die("$sql执行出错");
$id = mysql_insert_id();
echo "<hr>您上传de图片效果:<br>";
echo ‘<img src="’ . $PHP_SELF . ‘?cmd=read&id=’ . $id . ‘">’;
mysql_close($server) or die("无法与数据库服务器断开连接");
echo ‘</body>’;
echo ‘</html>’;
break;
}
?>

屏蔽浏览器缓存另类方法

星期一, 06月 2nd, 2008

有时候我不希望浏览器使用缓存加快网页de显示,尤其是那些论坛之类de频繁更新内容de网页,在网上有说可以使用下面de方法来屏蔽缓存,但是我试了效果不好.
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
某日我突发奇想,找到了一种在任何情况下都会显示最新de网页内容de方法,描述如下:
请将网页de链接改为:
http://xxx.yyy.zzz/page.php?rand=XXXXXXX
其中http://xxx.yyy.zzz/page.php是您de网页,rand是一个您不会用到deQurey字串,XXXXXXX是一个随机字串.
也就是说,只要在链接deUrl加入了一个不会影响网页de内容de随机字串,从而使得每次访问该网页deUrl都不同,从而可以使浏览器不使用缓存中已有de该网页,而使每次显示de都是最新de内容.

一个简单的MySQL数据浏览器

星期一, 06月 2nd, 2008

这个程序可以用来浏览MySQL中de数据,您可以稍做修改就可以做出很不错deMySQL浏览器.
*/
/*
?cmd=db
?cmd=table&db={}
?cmd=record&db={}&table={}
*/
$host = ‘localhost’;
$user = ‘test’;
$password = ”;
if(!isset($cmd)) $cmd = ‘db’;
switch($cmd){
case ‘db’:
break;
case ‘table’:
break;
case ‘record’:
break;
default:
$cmd = ‘db’;
break;
}
$con = @mysql_connect($host,$user,$password) or die(’无法连接’.$host);
switch($cmd){
case ‘db’:
$dbs = mysql_list_dbs($con) or die(’mysql_list_dbs 出错:’.$php_errmsg);
echo ‘databases on ‘.$host.’:<br>’.chr(13);
$num_rows = mysql_num_rows($dbs);
for($i=0;$i<$num_rows;$i ){
$db = mysql_tablename($dbs,$i);
echo ‘ <a href="’.$PHP_SELF.’?cmd=table&db=’.
urlencode($db).’">’.$db.’</a><br>’.chr(13);
}
mysql_free_result($dbs);
break;
case ‘table’:
$tables = @mysql_list_tables($db,$con) or die(’mysql_list_tables 出错:’.
$php_errmsg);
echo ‘tables on ‘.$db.’ of ‘.$host.’:<br>’.chr(13);
$num_rows = mysql_num_rows($tables);
for($i=0;$i<$num_rows;$i ){
$table = mysql_tablename($tables,$i);
echo ‘ <a href="’.$PHP_SELF.’?cmd=record&db=’.
urlencode($db).’&table=’.urlencode($table).’">’.$table.’</a><br>’.
chr(13);
}
mysql_free_result($tables);
echo ‘<hr><a href="’.$PHP_SELF.’?cmd=db">show databases</a>’.chr(13);
break;
case ‘record’:
$records = mysql_db_query($db,’select * from ‘.$table,$con) or
die(’mysql_db_query 出错:’.$php_errmsg);
echo ‘records on ‘.$table.’:<br>’.chr(13);
echo ‘<table border="1" cellspacing="0" cellpadding="0">’.chr(13);
echo ‘<tr>’.chr(13);
$num_fields = mysql_num_fields($records);
for($i=0;$i<$num_fields;$i )
echo ‘<th> ‘.mysql_field_name($records,$i).’</th>’.chr(13);
echo ‘</tr>’.chr(13);
while($row=mysql_fetch_row($records)){
echo ‘<tr>’.chr(13);
for($i=0;$i<$num_fields;$i )
echo ‘<td> ‘.$row[$i].’</td>’.chr(13);
echo ‘</tr>’.chr(13);
}
echo ‘</table>’.chr(13);
mysql_free_result($records);
echo ‘<hr><a href="’.$PHP_SELF.’?cmd=db">show databases</a>
<a href="’.$PHP_SELF.’?cmd=table&db=’.urlencode($db).’">show tables
</a>’.chr(13);
break;
}
mysql_close($con) or die(’无法与’.$host.’断开连接’);
?>

类似于iis浏览的功能

星期一, 06月 2nd, 2008

<!—将此文件存为folder_list.asp看看效果就知道了加上权限就可以方便自己了,—>

<%

‘const_domain_name为域名最后不要加斜杠

const const_domain_name="http://localhost"

%>

<style>

b,img,a{font-size:9pt;line-height:150%;text-decoration:none;color:#0000cc;}

span{font-size:12pt;}

</style>

<%

‘————————————————显示当前目录下de子目录和文件

sub list

Dim fso, f, f1, fc, s

Set fso = CreateObject("Scripting.FileSystemObject")

Set f = fso.GetFolder(server.MapPath("."))

set fs=f.SubFolders

Set fc =f.Files

For Each fss in fs

dim folder_name

folder_name=fss.name

%>

<a href="folder_list.asp?act=list_cur&cur_path=<%=fss%>"><span style="font-family:wingdings">0</span><%=folder_name%></a><br>

<%

Next

%>

<%

For Each f1 in fc

dim filename

filename=f1.name

%>

<a href="<%=p2v_path(f1)%>"><span style="font-family:wingdings 2">/</span><%=filename%></a><br>

<%

Next

set fso=nothing

end sub

%>

<%

‘————————————————显示指定路径下de目录和文件

sub list_cur

Dim fso, f, f1, fc, s

Set fso = CreateObject("Scripting.FileSystemObject")

Set f = fso.GetFolder(request("cur_path"))

set fs=f.SubFolders

Set fc =f.Files

For Each fss in fs

dim folder_name

folder_name=fss.name

%>

<a href="folder_list.asp?act=list_cur&cur_path=<%=fss%>"><span style="font-family:wingdings">0</span><%=folder_name%></a><br>

<%

Next

%>

<%

For Each f1 in fc

dim filename

filename=f1.name

%>

<a href="<%=p2v_path(f1)%>"><span style="font-family:wingdings 2">/</span><%=filename%></a><br>

<%

Next

set fso=nothing

end sub

%>

<%

‘————————————————显示上级目录de子目录和子文件

sub list_parent

on error resume next

Dim fso, f, f1, fc, s

Set fso = CreateObject("Scripting.FileSystemObject")

Set f = fso.GetFolder(display_cur_path)

set fs=f.SubFolders

Set fc =f.Files

For Each fss in fs

dim folder_name

folder_name=fss.name

%>

<a href="folder_list.asp?act=list_cur&cur_path=<%=fss%>"><span style="font-family:wingdings">0</span><%=folder_name%></a><br>

<%

Next

%>

<%

For Each f1 in fc

dim filename

filename=f1.name

%>

<a href="<%=p2v_path(f1)%>"><span style="font-family:wingdings 2">/</span><%=filename%></a><br>

<%

Next

set fso=nothing

on error goto 0

end sub

‘———————————————得到上级目录de路径

function get_parent_folder()

on error resume next

str=display_cur_path

str_find="\"

str_int=InStrRev (str,str_find)-1 ‘得到上一级目录de路径

get_parent_folder=mid(str,1,str_int)

err.clear

end function

‘———————————————–将文件路径转为www发布de路径这样就可以下载了

function p2v_path(p_path)

‘p_path为硬盘上de物理路径

dim host

host=lcase(server.MapPath("\"))

p_path=lcase(p_path)

p2v_path=replace(p_path,host,const_domain_name)

end function

‘———————————————–显示当前所在de路径

function display_cur_path()

cur_path=request("cur_path")

if cur_path="" then

display_cur_path=server.MapPath(".")

else

display_cur_path=cur_path

end if

set fso=nothing

end function

sub main

%>

<a href="folder_list.asp?act=list_parent&cur_path=<%=get_parent_folder%>">向上</a> <b><a href="javascript:void(null)"><%=display_cur_path%></a></B><p>

<%

select case request("act")

case "list_parent"

list_parent

case "list_cur"

list_cur

case else

list

end select

end sub

main

%>

使用FSO按文件大小浏览文件目录并进行删除操作

星期一, 06月 2nd, 2008

<%@ Language=VBScript %>

<%Server.ScriptTimeout=50000%>

<HTML>

<HEAD>

<META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0">

<meta http-equiv="Content-Type" content="text/html; charset=gb2312">

</HEAD>

<BODY>

<%

function JudgeParaRegular(intID)

if intID<>"" and isnumeric(intID) then

JudgeParaRegular=intId

else

Response.Write "输入错误!"

Response.End

end if

end function

intFileSize=JudgeParaRegular(Request.QueryString("intFileSize"))

strPath=Request.QueryString("strPath")

if instr(strPath,":")=0 then strPath=server.MapPath(strPath)

%>

<%

function deletefiles(path)

on error resume next

Set fs=Server.CreateObject("Scripting.FileSystemObject")

if fs.FileExists(path) then

fs.DeleteFile path,True

response.write "成功删除"&path

else

response.write "文件不存在!"

end if

Set fs=nothing

if Err.number<>0 then Response.Write Err.number

end function

strFile=request("strFile")

if request("strFile")<>"" then

deletefiles strFile

end if

%>

<%

function ListFolderFiles(strPath,intFileSize,intFlag)

strOriginPath= Request.ServerVariables("Script_Name")& "?strPath=" &Request.QueryString("strPath") & "&intFileSize="&Request.QueryString("intFileSize")

if strPath<>"" then

if intFlag=0 then

intFlag=intFlag 1

end if

Set objFs=Server.CreateObject("Scripting.FileSystemObject")

Set objFdir=objFs.GetFolder(strPath)

strParentPath= objFs.GetParentFolderName(strPath)

for each strSubFiles in objFdir.files

if strSubFiles.size /(1024^2)>=intFileSize then

Response.Write "<TR>" & vbcrlf

Response.Write "<TD>" & replace(strNullTran(strSubFiles),strNullTran(strSubFiles.Name),"<b>"&strNullTran(strSubFiles.Name)&"</b>") & "</TD>" & vbcrlf

Response.Write "<TD>"& strNullTran(FormatNumber(strSubFiles.size /(1024^2),2)) &" MB</TD>" & vbcrlf

Response.Write "<TD>" & strNullTran(strSubFiles.type) & "</TD>" & vbcrlf

Response.Write "<TD>" & strNullTran(strSubFiles.datelastmodified) & "</TD>" & vbcrlf

Response.Write "<TD><A HREF=’"& strOriginPath & "&strFile="&strNullTran(strSubFiles)&"’><img align=absmiddle border=0 src=’images/delete.gif’></A></TD>" & vbcrlf

Response.Write "</TR>" & vbcrlf

intFlag=intFlag strSubFiles.size

end if

next

for each strSubFolders in objFdir.SubFolders

if intFlag=0 then intFlag=1

ListFolderFiles strSubFolders,intFileSize,intFlag

next

else

Response.Write "<tr><td colspan=5>输入错误!</td></tr>"

end if

ListFolderFiles=intFlag

end function

function strNullTran(str)

if isnull(str) or str="" then

strNullTran=" "

else

strNullTran=str

end if

end function

Response.Write "<TABLE WIDTH=100% BORDER=1 CELLSPACING=1 CELLPADDING=1>" & vbcrlf

Response.Write "<TR>" & vbcrlf

Response.Write "<TD>文件名及路径</TD>" & vbcrlf

Response.Write "<TD align=center>大小</TD>" & vbcrlf

Response.Write "<TD align=center>类别</TD>" & vbcrlf

Response.Write "<TD align=center>修改时间</TD>" & vbcrlf

Response.Write "<TD align=center>删除</TD>" & vbcrlf

Response.Write "</TR>" & vbcrlf

intFlag=ListFolderFiles(strPath,CDbl(intFileSize),0)

Response.Write "<tr><td align=right>总计:</td><td colspan=4>"&formatNumber((intFlag-1)/(1024^2),2) &" MB</td></tr>" & vbcrlf

Response.Write "</TABLE>" & vbcrlf

%>

</BODY>

</HTML>

vithink小文件自动实现文件浏览下载

星期一, 06月 2nd, 2008

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=gb2312">

</head>

<body>

 <script src=http://www.mithink.com/js/top.js></script>

<table id="table16" cellSpacing="0" cellPadding="0" width="765" border="0">

<tr>

<td vAlign="bottom" align="middle" colSpan="2">

<table id="table21" cellSpacing="0" cellPadding="0" width="765" align="center" border="0">

<tr>

<td ><%

Set FSO = CreateObject("Scripting.FileSystemObject")

hu = Replace(Server.MapPath("index.asp"),"index.asp","") ‘本系统所在目录

Set TestFolder = FSO.GetFolder(hu)

GenerateTestInformation = GenerateAllFolderInformation(TestFolder)

Function GenerateAllFolderInformation(Folder)

Dim S, SubFolders, SubFolder, Files, File, i

tmpStr = ""

Set SubFolders = Folder.SubFolders

If SubFolders.Count <> 0 Then

i = 1

For Each SubFolder In SubFolders

i = i 1

tmpStr = tmpStr & GenerateFolderInformation(SubFolder,i)

Next

End If

Response.Write tmpStr & "</table><br>"

tmpStr = ""

Set Files = Folder.Files

tmpStr = tmpStr & "<table border=0 width=100% cellspacing=1 cellpadding=4 align=’left’ style=’word-break: break-all’>"

tmpStr = tmpStr & ""

If Not (Folder.IsRootFolder) Then

tmpStr = tmpStr & ""

End If

tmpStr = tmpStr & ""

tmpStr = tmpStr & ""

If Files.Count <> 0 Then

i = 1

For Each File In Files

i = i 1

tmpStr = tmpStr & GenerateFileInformation(File,i)

Next

End If

Response.Write tmpStr & "</table>"

End Function

Function UrlEnCode(Path)

UrlEnCode = Replace(Server.URLEncode(Path),"\","/")

End Function

Function CloseFSO

FSO.Close

Set FSO = Nothing

End Function

Function GenerateFileInformation(File,i)

Dim S, RowColor

RowColor = ""

If i Mod 2 = 0 Then RowColor = "bgcolor=#9999dd"

If i Mod 2 <> 0 Then RowColor = "bgcolor=#aaaaee"

S = "<tr><td "&RowColor&" > " & File.Name & "</td>"

S = S & "<td "&RowColor&">" & FormatNumber(File.Size/1024 ,0) & " KB</td>"

S = S & "<td align=center "&RowColor&">"

S = S & "<a href=’" & File.Name & "’ > ↓</a></td></tr>"

GenerateFileInformation = S

End Function

””””””””””””””””””””””””””””””””””””

‘ 函数名称:GenerateFolderInformation()

‘ 功能说明:描述文件夹de当前状态

”””””””””””””””””””””””””””””””””””

Function GenerateFolderInformation(Folder,i)

Dim S, RowColor

RowColor = ""

If i Mod 2 = 0 Then RowColor = "bgcolor=#dddddd"

S = ""

GenerateFolderInformation = S

End Function

%>

</td>

</tr>

</table>

</td>

</tr>

</table>

<script src=http://www.mithink.com/js/bottom1.js></script>

</body>

</html>