-->ColdFusion 初级教程-->文件上载

ColdFusion

后页 前页
目录
北极星书库
文件上载

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


· 一个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属性被忽略或设为空或设为“*/*”,则所有类型的文件都可以被上载。


后页
前页
目录
北极星书库