梁波的自留地

自留地,仅供自家种菜用。

FCKeditor的php应用(转载)

FCKeditor 是一个十分强大的网页文本编辑器,它支持多种脚本编程语言和支持多国语言。

官方网站 http://www.FCKeditor.net/

这里是关于php的配置方法,其他语言的配置方法是和它一样的。

假设网站的目录为:
\www
    \index.php
    \inc
    \FCKeditor
一:调用FCKeditor的两种方法
1:通过创建实例
  在这里只写调用它的代码了,网站的其他代码当然由你自己写了,把下面的代码加在应该加的地方。

代码:
<?php
  include_once("FCKeditor/fckeditor.php");    //引用FCKeditor.php这个文件
  $FCKeditor=new FCKeditor("myinfo");        //创建FCKeditor对象的实例
  $FCKeditor->BasePath="FCKeditor/";          //FCKeditor所在的位置,这里它的位置就是"FCKeditor/";
  $FCkeditor->ToolbarSet="Default";           //工具按钮设置
  $FCKeditor->Width="100%";                   //设置它的宽度
  $FCKeditor->Height="300px";                 //设置它的高度
  $FCkeditor->Cr&#101;ate();
  ?>

2:通过iframe调用创建
在你认为该加的地方加上

代码:
<INPUT id=content style="DISPLAY: none" type=hidden name="myinfo">
<INPUT id=content___Config style="DISPLAY: none" type=hidden>
<IFRAME id=content___Frame src="FCKeditor/editor/fckeditor.html?InstanceName=myinfo&amp;Toolbar=Default" frameBorder=0 width=100% scrolling=no height=300>
</IFRAME>

对上述两种方法的说明:

在上述两种方法中,你都看到了字符串"myinfo",你可能不知道是什么意思,现在我给你解释一下
如果你要将文本编辑器中的内容在另外一个页面显示或者要将在它保存在数据库,你可以用
$_POST["myinfo"]或者用$_GET["myinfo"]来获取文本编辑器中的内容,具体是用post还是用get那要看你用的是什么传递方法了

当然你也可以把myinfo改成你想要用的,如"content".

如果你还不知道什么是ajax,那么这一段话你就不用看了。
当你用ajax的来获得内容的时候是不是发现得不到内容,如:
<script>alert(document.form.content.value)</script>你会发现谈出的窗口没内容
那么我们可以通过下面的代码来获得它的内容:
function getContentValue()
{
    var oEditor = FCKeditorAPI.GetInstance("content") ;
    var acontent=oEditor.GetXHTML();
    return acontent;
}

二:配置一些文件
1:fckconfig.js的配置
  (1).工具按钮设置

  查找FCKConfig.ToolbarSets["Default"],这里有很多按钮,下面我们将对他们详细介绍

  EditSource 显示HTML源代码 StrikeThrough 删除线
  Save 保存 Subscript 下标
  NewPage 新建空白页面 Superscript 上标
  Preview 预览 JustifyLeft 左对齐
  Cut 剪切 JustifyCenter 居中对齐
  Copy 复制 JustifyRight 右对齐
  Paste 粘贴 JustifyFull 两端对齐
  PasteText 纯文本粘贴 Ins&#101;rtOrderedList 自动编号
  PasteWord 来自Word的粘贴 Ins&#101;rtUnorderedList 项目符号
  Print 打印 Outdent 减少缩进
  SpellCheck 拼写检查 Indent 增加缩进
  Find 查找 ShowTableBorders 显示表格线
  Replace 替换 ShowDetails 显示明细
  Undo 撤销 Form 添加Form动作
  Redo 还原 Checkbox 复选框
  Sel&#101;ctAll 全选 Radio 单选按钮
  RemoveFormat 去除格式 Input 单行文本框
  Link 插入/编辑 链接 Textarea 滚动文本框
  RemoveLink 去除连接 Sel&#101;ct 下拉菜单
  Anchor 锚点 Button 按钮
  Image 插入/编辑 图片 ImageButton 图片按钮
  Table 插入/编辑 表格 Hidden 隐藏
  Rule 插入水平线 Zoom 显示比例
  SpecialChar 插入特殊字符 FontStyleAdv 系统字体
  UniversalKey 软键盘 FontStyle 字体样式
  Smiley 插入表情符号 FontFormat 字体格式
  About 关于 Font 字体
  Bold 粗体 FontSize 字体大小
  Italic 斜体 TextColor 文字颜色
  Underline 下划线 BGColor 背景色

这个默认的是包含了所有的工具按钮,不过到我们具体要用的时候,有的按钮并不需要,而且还影响速度。那么我们可以将我们不需要的按钮给删了。下面是我的配置,给大家一个参考,当然你可以根据你的喜好。
FCKconfig.ToolbarSets["Default"] = [
["EditSource","Save","NewPage","Preview","-","Cut","Copy","Paste","PasteText","-","Find","Replace","-","Undo","Redo","-","Sel&#101;ctAll","-","Link","RemoveLink","-","Image","Table","Rule","SpecialChar","Smiley"] ,
["Bold","Italic","Underline","-","JustifyLeft","JustifyCenter","JustifyRight","-","Ins&#101;rtOrderedList","Ins&#101;rtUnorderedList","-","Form","Checkbox","Radio","Input","Textarea","Sel&#101;ct","Button","-","FontStyleAdv","TextColor"] ] ;

如果在前台给用户回复一写帖子的话,还是没必要要上面的,这时你可以在加一个:
FCKConfig.ToolbarSets["Basic"] = [
    ["Bold","Italic","-","OrderedList","UnorderedList","-","Link","Unlink","-","About"]
] ;

这样的话,你在前台调用的时候就要用$FCKeditor->ToolbarSet="Basic",不能在为"Default"了。

(2):语言的配置

查找FCKConfig.DefaultLanguage将它设置为"zh-cn".

(3):脚本语言的设置

查找var _FileBrowserLanguage和var _QuickUploadLanguage将他们设置为"php", 默认是"asp",如果这里不设置的话,图片将不能上传,这点很重要。当时我在用FCKeditor由于没配置这个,不能上传图片,而我同寝室的用asp能上传图片,让我烦恼了好多天,最后终于找到是这个原因。

2:图片上传的配置

打开文件FCKeditor/editor/filemanager/browser/default/connectors/php/config.php
查找$Config["Enabled"],将它设置为"true"
查找$Config["UserFilesPath"],将它设置图片的目录,这个目录是相对于主目录的 //例如:我写了一个blog,就可以设置为/blog/upload/

打开文件FCKeditor/editor/filemanager/upload/php/config.php
查找$Config["Enabled"],将它设置为"true"
查找$Config["UseFileType"],将它设置上传文件的目录,最好与上面的图片目录相同

好了,现在所有的配置都已经完成了,现在你要做的只是删除一些不必要的文件了
只要包含"_"的目录名和文件名都可以删除,当然你用的是php,其他语言的一些目录也都可以删除,这样就减小了文件的大小.

FCKeditor的使用方法

FCKeditor使用初步

  FCKeditor 2.0版终于出来了,之所以用“终于”这个词,是因为在这一版本上加上了众望所归的FLASH插入功能。可以说在所有的在线编辑器中,FCKeditor是目前互联网上最好的编辑器,功能强大,支持多种浏览器,无平台限制,可以和多种WEB语言融合,多语言支持,开源等~~

  对于一个全新的网站,FCKeditor就可以直接拿过来用了,不需要进行什么修改。但是对于绝大多数的已有网站而言,FCKeditor的一些设置并不适合自己的使用,这篇文章旨在告诉你简单的修改FCKeditor以方便您的网站的使用。

  第一项工作就是对这个功能宏大的编辑器进行精简,当然是文件精简而非功能精简化。在这里我以asp版的FCKeditor为例进行,进入到FCKeditor 2.0文件夹下,先把以“_”为开头的文件夹统统删除,这些文件夹里放的是范例或是一些其它工具。其实也就是只保留editor文件夹、fckconfig.js、fckeditor.asp、fckeditor.js、fckstyles.xml、fcktemplates.xml就可以了,最外层的精简化完毕,进入到editor文件夹内,先把“_source”文件夹删除,这里是一些源文件,对于使用来说没什么用处。

  进入images文件夹,删除smiley文件夹,些文件是放表情图标的,由于接下来我会用我自己的表情图标,先把他们的删除,当然,如果你想用这里的表情图标那就不要删掉了。退出 images再进入lang文件夹内,这里的东西可以来个大清洗了,只保留fcklanguagemanager.js、zh-cn.js、en.js、zh.js这四个文件,第一个文件是语言配置文件,有了它才能和fckconfig.js里的设置成对对应上相应的语言文件,zh-cn.js是简体中文语言包,en.js就不用说了吧,zh.js是繁体中文的。怎么样?一下子少了几百K,爽吧~

  再退出lang文件夹,进入skin文件夹,如果你想使用fckeditor默认的这种奶黄色,那就把除了default文件夹外的另两个文件夹直接删除,如果想用别的,那就自己考虑了,不过我给你个建议,如果不想用默认的,那就选那个silver,因为银色也就是灰色和任何颜色配起来都不会难看,而那个office2003的皮肤,反正我是非常不喜欢的,并且图片相对也比较大,又增加了下载时间,不要!

  精简的最后一步,退出skin文件夹,再进入filemanager,如果你用的不是最新版的fckeditor的话,那这里就一个文件夹browser,新版的还有一个upload文件夹。一个个来,先进入到filemanager/browser/default/connectors/下,因为我是用的asp的,所以除asp文件夹外,全部删除。然后再进入filemanager/upload/下,同样,只留asp文件夹,至此,编辑器的精简化已经结束了,接下来,我们对编辑器进行设置修改。

  

——————————————————————————–

  第一个修改的文件,也就是fckeditor总配置文件,位于根目录下的fckconfig.js文件。请根据下面的列表进行(以fckeditor 2.0版的为准):

找到第20行 FCKConfig.DefaultLanguage   = ‘en’ ;改为 FCKConfig.DefaultLanguage   = ‘zh-cn’ ;设置默认语言为简体中文
找到第40行 FCKConfig.TabSpaces   = 0 ; 改为FCKConfig.TabSpaces   = 1 ; 即在编辑器域内可以使用Tab键。

如果你的编辑器还用在网站前台的话,比如说用于留言本或是日记回复时,那就不得不考虑安全了,在前台千万不要使用Default的toolbar,要么自定义一下功能,要么就用系统已经定义好的Basic,也就是基本的toolbar,
找到第64行 FCKConfig.ToolbarSets["Basic"] = [
['Bold','Italic','-','OrderedList','UnorderedList','-',/*'Link',*/'Unlink','-','Style','FontSize','TextColor','BGColor','-','Smiley','SpecialChar','Replace','Preview']
] ;
这是我改过的Basic,把图像功能去掉,把添加链接功能去掉,因为图像和链接和flash和图像按钮添加功能都能让前台页直接访问和上传文件,要是这儿不改直接给你上传个木马还不马上玩完?但是光这样还不行,fckeditor还支持编辑域内的鼠标右键功能。
找到第73行
FCKConfig.ContextMenu = ['Generic',/*'Link',*/'Anchor',/*'Image',*/'Flash','Select','Textarea','Checkbox','Radio','TextField','HiddenField',/*'ImageButton',*/'Button','BulletedList','NumberedList','TableCell','Table','Form'] ;

这也是我改过的把鼠标右键的“链接、图像,FLASH,图像按钮”功能都去掉。

  找到 第77行 FCKConfig.FontNames   = ‘Arial;Comic Sans MS;Courier New;Tahoma;Times New Roman;Verdana’ ;
加上几种我们常用的字体 FCKConfig.FontNames   = ‘宋体;黑体;隶书;楷体_GB2312;Arial;Comic Sans MS;Courier New;Tahoma;Times New Roman;Verdana’ ;

  接下来就设置上传功能了,还是以ASP为例,其实fck默认的就是asp的,把100行以下的所有被注释掉的代码全部删掉就行,然后再把下面所有有关于browser.html和upload.asp的后面的?Type=XX都改成Type=YY,其中YY为你想保存文件的文件夹名称。

  而如果你还想用自己的表情图标的话,那跳到131行,改掉那个表情图标的文件夹地址,以及下面的表情图标的文件名,再下面那三个数字是每行显示表情数及弹出窗口的宽和高了,这个的大小要根据您的表情图标排列的窗口的大小而定了。OK,总配置文件修改结束。

——————————————————————————–

  接下来是编辑器位置的设置,我的习惯是把editor放在根目录下,最开始所述的五个文件也放在根目录下(Tips:建议放在根目录下,并且建议使用时设置路径也采用绝对路径,如"/fckeditor/",而我的习惯的设置是"/"),这样有利于fckeditor的更新升级,并且网站下所有文件夹都可以任意调用,不存在其它文件夹名变了而其它地方就无法使用编辑器的问题。

  打开fckeditor.asp文件,找到   sBasePath   = "/fckeditor/"改为   sBasePath   = "/"
打开fckeditor.js文件,找到   this.BasePath   = ‘/fckeditor/’ ;改为   this.BasePath   = ‘/’ ;

  编辑器域内默认的显示字体为12px,而我的主页默认字体为14px,所以看着就很不舒服,想要修改可以通过修改样式表来达到要求,打开/editor/css/fck_editorarea.css,把第4行改为   font-size: 14px;即可。

  接下来就是上传文件的设置了,这个比较麻烦,请仔细操作。

  打开\editor\filemanager\browser\default\frmresourcetype.html,找到第15行,插入“ ['uploadfile','uploadfile'],”配合上刚才在fckconfig.js里的设置,那么我的上传文件路径就是/uploadfile,当然你也可以改成你想要的文件夹,但这里的名称一定要和fckconfig.js里的那个“Type=YY”里的YY一致才行。

  还没完,继续进入到editor\filemanager\browser\default\connectors\asp,打开config.asp,先把ConfigIsEnabled = False改成为ConfigIsEnabled = True,要不是没法上传文件的,再把ConfigUserFilesPath = "/UserFile"改成我想要的ConfigUserFilesPath = "/"。
接着在“Set ConfigDeniedExtensions = CreateObject( "Scripting.Dictionary" )”后面加入ConfigAllowedExtensions.Add "uploadfile", ""
ConfigDeniedExtensions.Add "uploadfile", ""
同理,这里的设置也是要和上面以及fckconfig.js里面对应的。

  还有一个上传,就是快速上传,这个功能是在fckeditor 2.0里才有的,以前的版本没这个功能。进入\editor\filemanager\upload\asp,同样打开config.asp,也同样的把ConfigIsEnabled = False 设置成 ConfigIsEnabled = True,我这里把ConfigUserFilesPath = "/UserFiles/"改成我想要的 ConfigUserFilesPath = "/uploadfile/"& Year(Date()) &"-"& Month(Date()) &"/",因为我的上传文件是放在uploadfile文件夹下,并且是按月分开放置的。快速上传,不会让你选择文件夹,而是通过这里的设置直接上传的,这儿设置如果和前面的设置配合不好的话,你的文件就会被上传得乱七八糟,很不方便管理。接前重复前一个config.asp里的操作,在后面加上
ConfigAllowedExtensions.Add "uploadfile", ""
ConfigDeniedExtensions.Add "uploadfile", ""

——————————————————————————–

  接下来呢,就讲一下如何创建自己的在线编辑器,这里以ASP和JS版的为例,ASP版示例代码,一般用于后台操作:

<%
Dim oFCKeditor
Set oFCKeditor = New FCKeditor
oFCKeditor.BasePath = "/"

oFCKeditor.ToolbarSet = "Default"
oFCKeditor.Width = "100%"
oFCKeditor.Height = "400"

oFCKeditor.Value = rs("logbody")
oFCKeditor.Create "logbody"
%>

ASP版的,当然只能用在以.asp为扩展名的页面中,如果你在前在fckedito.asp里设置过BasePath为"/"的话,这里就可以省掉第三行,ASP版的只有一个Create函数。建议在修改一篇内容时用ASP版的。

接下来看JS版的:

<script type="text/javascript">
var oFCKeditor = new FCKeditor( ‘logbody’ ) ;
oFCKeditor.BasePath = ‘/’ ;
oFCKeditor.ToolbarSet = ‘Basic’ ;
oFCKeditor.Width = ’100%’ ;
oFCKeditor.Height = ’400′ ;
oFCKeditor.Value = ” ;
oFCKeditor.Create() ;
</script>

  BasePath的设置同上所述,JS版的可用于任何网页中,甚至用于html页面,因为其是客户端生成的,这样的好处就是一可以减小网络流量,因为编辑器文件只需下载一次,二是可以由客户端定义什么时候显示,由于fckeditor初始化需要一定时间,在这一点上JS就很有作用了。

另外,JS版的还有一个功能函数就是ReplaceTextarea()函数,可以替换指定的TextArea,拿我的网站的日志的回复部分示例:

      <script type="text/javascript">
      <!–
      function showFCK(){
      var oFCKeditor = new FCKeditor( ‘fbContent’ ) ;
      oFCKeditor.BasePath = ‘/’ ;
      oFCKeditor.ToolbarSet = ‘Basic’ ;
      oFCKeditor.Width = ’100%’ ;
      oFCKeditor.Height = ’200′ ;
      oFCKeditor.Value = ” ;
      //oFCKeditor.Create() ;
      oFCKeditor.ReplaceTextarea() ;
      //document.blog_feedback.blogsubmit.disabled = ”;
      document.blog_feedback.blogsubmit.style.display = ”;
      document.blog_feedback.openFCK.disabled = ‘true’;
      document.blog_feedback.openFCK.style.display = ‘none’;
      }
      //–>
      </script>

把其写成一个简单的函数,当用户显示打开编辑器时才生成这个fckeditor,不用每次刷新页面都去初始化一个编辑器,页面的速度就会快多了。

——————————————————————————
补遗:前面讲到了,说是在编辑已有数据内容时不要用JS版的,那是因为单引号(’)的问题造成的,在数据内容里难免会有单引号存在而用JS版生成编辑器时可能就会因为单引号问题,而使编辑器无法正常生成,而采用asp则不同,用ASP版本的是因为数据被当成是一个变量了,然后直接赋值给编辑器域。还有就是除非你要用ReplaceTextArea()方法来生成编辑器,否则你不需先写一个<textarea>这样的标签,一切都会由fckeditor自动生成的,你所需做的只是给fckeditor指定一个实例名。同时你也不用担心如何提交,在表单提交的时候,fckeditor会自动提交,提交的变量名是以你指定的fckeditor实例命名的。

==================================
FCKeditor2.0在线编辑器的修改与设置-文件上传部分

以下部分为原创,如需转载请注明“出处:http://3rgb.com 作者:柠檬园主”

上次我们讲了FCKeditor的使用相关的设置以及一些优化设置,对于普通的用户已经很受用了,今天再来讲几个小技巧,另外着重讲一下对上传文件部分的定制,适用于高级用户。

第一部分,装自己定制的插件,实现模板标签(开源的东西就有这点好处,随心所欲地修改),打开fckconfig.js文件找到

FCKConfig.PluginsPath = FCKConfig.BasePath + ‘plugins/’ ;

// FCKConfig.Plugins.Add( ‘placeholder’, ‘en,it’ ) ;

去掉//后,就相当于把placeholder这个插件功能加上了,fckeditor的插件文件都在/editor/plugins/文件夹下分类按文件夹放置的,对于fckeditor2.0来说,里面有两个文件夹,也就是有两个官方插件,placeholder这个文件夹就是我们刚才加上去的,主要用于多参数或单参数自定义标签的匹配,这个在制作编辑模板时非常管用,要想看具体实例的话,大家可以去下载acms这个系统查看学习,另一个文件夹 tablecommands就是编辑器里的表格编辑用到的了。当然,如果你想制作自己其它用途的插件,那就只要按照fckeidtor插件的制作规则制作完放置在/editor/plugins/下就行,然后再在fckeidtor.js里再添加FCKConfig.Plugins.Add (‘Plugin Name’,',lang,lang’);就可以了。

第二部分,使用自己的表情图标,同样打开fckcofnig.js到最底部那一段

FCKConfig.SmileyPath = FCKConfig.BasePath + ‘images/smiley/msn/’ ;
FCKConfig.SmileyImages = ['regular_smile.gif','sad_smile.gif','wink_smile.gif'] ;
FCKConfig.SmileyColumns = 8 ;
FCKConfig.SmileyWindowWidth = 320 ;
FCKConfig.SmileyWindowHeight = 240 ;

上面这段已经是我修改过的了,为了我发表此文的版面不会被撑得太开,我把FCKConfig.SmileyImages那一行改得只有三个表情图了。

第一行,当然是表情图标路径的设置,第二行是相关表情图标文件名的一个List,第三行是指弹出的表情添加窗口最每行的表情数,下面两个参数是弹出的模态窗口的宽和高喽。

第三部分,文件上传管理部分

此部分可能是大家最为关心的,上一篇文章简单的讲了如何修改来上传文件以及使用fckeidtor2.0才提供的快速上传功能。再我们继续再深层次的讲解上传功能

FCKConfig.LinkBrowser = true ;
FCKConfig.ImageBrowser = true ;
FCKConfig.FlashBrowser = true ;
在fckconfig.js 找到这三句,这三句不是连着的哦,只是我把他们集中到这儿来了,设置为true的意思就是允许使用fckeditor来浏览服务器端的文件图像以及 flash等,这个功能是你插入图片时弹出的窗口上那个“浏览服务器”按钮可以体现出来,如果你的编辑器只用来自己用或是只在后台管理用,这个功能无疑很好用,因为他让你很直观地对服务器的文件进行上传操作。但是如果你的系统要面向前台用户或是像blog这样的系统要用的话,这个安全隐患可就大了哦。于是我们把其一律设置为false;如下

FCKConfig.LinkBrowser = false ;
FCKConfig.ImageBrowser = false ;
FCKConfig.FlashBrowser = false ;

这样一来,我们就只有快速上传可用了啊,好!接下来就来修改,同样以asp为范例进行,进入/editor/filemanager/upload/asp/打开config.asp,修改

ConfigUserFilesPath = "/UserFiles/"
这个设置是上传文件的总目录,我这里就不动了,你想改自己改了

好,再打开此目录下的upload.asp文件,找到下面这一段

Dim resourceType
If ( Request.QueryString("Type") <> "" ) Then
resourceType = Request.QueryString("Type")
Else
resourceType = "File"
End If

然后再在其后面添加

ConfigUserFilesPath = ConfigUserFilesPath & resourceType &"/"& Year(Date()) &"/"& Month(Date()) &"/"

这样的话,上传的文件就进入“/userfiles/文件类型(如image或file或flash)/年/月/”这样的文件夹下了,这个设置对单用户来用已经足够了,如果你想给多用户系统用,那就这样来改

ConfigUserFilesPath = ConfigUserFilesPath & Session("username") & resourceType &"/"& Year(Date()) &"/"& Month(Date()) &"/"

这样上传的文件就进入“/userfiles/用户目录/文件类型/年/月/”下了,当然如果你不想这么安排也可以修改成别的,比如说用户目录再深一层等,这里的Session("username")请根据自己的需要进行修改或换掉。

上传的目录设置完了,但是上传程序还不会自己创建这些文件夹,如果不存在的话,上传不会成功的,那么我们就得根据上面的上传路径的要求进行递归来生成目录了。

找到这一段

Dim sServerDir
sServerDir = Server.MapPath( ConfigUserFilesPath )
If ( Right( sServerDir, 1 ) <> "\" ) Then
sServerDir = sServerDir & "\"
End If

把它下面的这两行

Dim oFSO
Set oFSO = Server.CreateObject( "Scripting.FileSystemObject" )

用下面这一段代码来替换

dim arrPath,strTmpPath,intRow
strTmpPath = ""
arrPath = Split(sServerDir, "\")
Dim oFSO
Set oFSO = Server.CreateObject( "Scripting.FileSystemObject" )
for intRow = 0 to Ubound(arrPath)
strTmpPath = strTmpPath & arrPath(intRow) & "\"
if oFSO.folderExists(strTmpPath)=false then
oFSO.CreateFolder(strTmpPath)
end if
next

用这段代码就可以生成你想要的文件夹了,在上传的时候自动生成。

好了,上传文件的修改到现在可以暂时告一段落了,但是,对于中文用户还存在这么个问题,就是fckeditor的文件上传默认是不改名的,同时还不支持中文文件名,这样一来是上传的文件会变成“.jpg”这样的无法读的文件,再就是会有重名文件,当然重名这点倒没什么,因为fckeditor会自动改名,会在文件名后加(1)这样来进行标识。但是,我们通常的习惯是让程序自动生成不重复的文件名

在刚才那一段代码的下面紧接着就是

‘ Get the uploaded file name.
sFileName = oUploader.File( "NewFile" ).Name

看清楚了,这个就是文件名啦,我们来把它改掉,当然得有个生成文件名的函数才行,改成下面这样

‘//取得一个不重复的序号
Public Function GetNewID()
dim ranNum
dim dtNow
randomize
dtNow=Now()
ranNum=int(90000*rnd)+10000
GetNewID=year(dtNow) & right("0" & month(dtNow),2) & right("0" & day(dtNow),2) & right("0" & hour(dtNow),2) & right("0" & minute(dtNow),2) & right("0" & second(dtNow),2) & ranNum
End Function

‘ Get the uploaded file name.
sFileName = GetNewID() &"."& split(oUploader.File( "NewFile" ).Name,".")(1)

这样一来,上传的文件就自动改名生成如20050802122536365.jpg这样的文件名了,是由年月日时分秒以及三位随机数组成的文件名了。