万卷书>>电脑书籍>>网页制作>>网页制作软件使用>>ColdFusion 初级教程

WANJUANSHU.COM

文件上载

实现文件上载需要建立两个文件:


 

· 一个HTML表单,用于输入文件上载信息。


 

· 一个包含文件上载代码的cfm文件。


 

建立用于文件上载的HTML表单


 

大多数浏览器都支持文件上载。将HTML INPUT标签的类型设为“file”,则浏览器会准备从客户端读取并传输一个文件给服务器。将ENCTYPE属性设为“multipart/form-data”,则服务器会知道表单的提交包含了一个上载的文件。


 

例子:一个用于文件上载的HTML表单


 

<FORM ACTION="FileUpload.cfm"


 

ENCTYPE="multipart/form-data"


 

METHOD="Post">


 

<PRE>


 

File Name: <INPUT NAME="FileName" TYPE="text">


 

File: <INPUT NAME="FileContents" TYPE="file">


 

<INPUT TYPE="submit" VALUE="Upload File">


 

</PRE>


 

</FORM>


 

用户可以输入一个文件的路径,或浏览本地的文件系统并选择一个要上载的文件。注意必须将ENCTYPE属性设置为“multipart/form-data”。


 

建立一个文件上载的程序文件


 

提交一个文件后,该文件还没有保存到服务器上。它只是被译码然后与其它的表单数据一起被传递给ACTION属性所指的程序文件,在该文件中由CFFILE标签对上载的文件进行解码并保存到服务器上。


 

例子:上载一个文件


 

下面例子中的CFFILE标签可以放置在上一例子中所指的“FileUpload.cfm”文件中:


 

<CFFILE ACTION="UPLOAD"


 

FILEFIELD="FileContents"


 

DESTINATION="C:\Web\Uploads\">


 

如果请求此文件的文件上载表单传递了一个名为keyMemo.doc文件,则该文件在服务器上被保存为:


 

C:\web\Uploads\keyMemo.doc


 

要以另外的文件名保存上载的文件,可以在DESTINATION属性中指定新文件名。在下面的例子中,文件“keyMemo.doc”被保存为“UploadedFile.doc”:


 

<CFFILE ACTION="UPLOAD"


 

FILEFIELD="FileContents"


 

DESTINATION="C:\Web\Uploads\UploadedFile.doc">


 

你也可以将这些属性设置为动态参数。例如,你可以根据数据库查询的结果来设定文件名。


 

注意:FILEFIELD属性应设定为一个Form字段的名字,而不是Form字段的值,因此不能将字段名括在#号中。


 

处理文件名冲突


 

将一个文件保存到服务器上时,有可能已经有另一个同名的文件存在,在这种情况下,利用NAMECONFLICT属性,你可以采取多种处理方法。


 

例子:解决文件名冲突


 

在下面的例子中,如果文件上载时发生名字冲突,程序会生成一个唯一的文件名,文件后缀名保持不变:


 

<CFFILE ACTION="Upload"


 

FILEFIELD="FileContents"


 

DESTINATION="C:\Web\Uploads\"


 

NAMECONFLICT="MAKEUNIQUE">


 

 


 

控制上载文件的类型


 

对某些应用程序,你也许需要限制上载文件的类型。例如,在一个文档库中,你也许不想接受图形文件。


 

ACCEPT属性用于限制允许上载的文件类型。指定了ACCEPT属性后,被上载文件的MIME内容类型必须与指定的条件相匹配,否则就会产生错误。ACCEPT属性的值是一列由逗号隔开的MIME数据类型名,其中可以使用通配符。


 

一个文件的MIME类型决定于浏览器,普通的类型如“image/gif”和“text/plain”等已在浏览器中注册。


 

例子:限制文件类型


 

这个CFFILE 只保存GIF格式的图象文件:


 

<CFFILE ACTION="Upload"


 

FILEFIELD="UploadFile"


 

DESTINATION="c:\uploads\MyImage.GIF"


 

NAMECONFLICT="OVERWRITE"


 

ACCEPT="image/gif">


 

这个CFFILE 只保存GIF格式或JPEG格式的图象文件:


 

<CFFILE ACTION="Upload"


 

FILEFIELD="UploadFile"


 

DESTINATION="c:\uploads\MyImage.GIF"


 

NAMECONFLICT="OVERWRITE"


 

ACCEPT="image/gif, image/jpeg">


 

这个CFFILE只保存图象文件,但对其格式没有限制:


 

<CFFILE ACTION="Upload"


 

FILEFIELD="UploadFile"


 

DESTINATION="c:\uploads\MyImage.GIF"


 

NAMECONFLICT="OVERWRITE"


 

ACCEPT="image/*">


 

注意:如果ACCEPT属性被忽略或设为空或设为“*/*”,则所有类型的文件都可以被上载。

 
上一页 WanJuanShu.COM 下一页
WANJUANSHU.COM 万卷书