Coldfusion将表单异步发布到cfc

Coldfusion post form to cfc asynchronously

本文关键字:cfc 异步 表单 Coldfusion      更新时间:2023-09-26

首先,让我说我正在开发的产品将被那些天生无法访问HTML5的人使用。其中一些人仍将使用IE8。我有如下表格:

<form action="ee.cfc?method=xlsupload" enctype="multipart/form-data" method="post"
    <input type="file" id="xlsfile" name="xlsfile" required>
    <input type="submit" value="Upload XLS">
</form>

在我的.cfc文件中,我有一个处理文件并将其转换为结构的函数(然后在用户验证数据后将其上传到数据库)。目前我已将其设置为<cfreturn SerializeJSON(dataset,true)>。但是,当我提交表单时,它会打开cfc文件并显示JSON结构。我以前在JQuery中做过很多表单提交等,但有没有一种方法可以在没有JQuery的情况下做到这一点?人们希望Coldfusion有能力做到这一点(当然,如果没有,我也不会感到惊讶)。

只有当你希望用户在后台上传表单时与表单所在的网页进行交互时,异步发布才有用。如果这是你想要的,你应该/可以使用jquery。

如果同步也是一个选项。然后将表单上传到.cfm文件,在.cfm文档上运行cfc,等待组件的响应,然后使用cflocation将.cfm文档重定向到一个网页,通知访问者其上传已处理。(使用cflocation可防止多次提交)。

例如

<form action="upload.cfm" enctype="multipart/form-data" method="post">
<input type="file" id="xlsfile" name="xlsfile" required>
<input type="submit" value="Upload XLS">
</form>

上传.cfm

<cfset yourComponent = createObject('component','/cfc/ee')>
<cfset response = yourComponent.functionName(form.xlsfile)>
<Cflocation url="done.cfm">

done.cfm

<html>....</html>