首先,让我首先说我正在开发的产品将被那些本身不具备访问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能够做到这一点,(当然,如果它没有,我当然不会感到惊讶。)
答案 0 :(得分:1)
只有当您希望用户在后台上传表单时与表单所在的网页进行交互时,异步发布才有用。如果这是你想要的,你应该/可以使用jquery。
如果同步也是一种选择。然后将表单上传到.cfm文件,在.cfm文档上运行cfc等待组件的响应,然后使用cflocation将.cfm文档重定向到通知访问者其上载已被处理的网页。 (使用cflocation来防止多次提交)。
e.g。
<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>
upload.cfm
<cfset yourComponent = createObject('component','/cfc/ee')>
<cfset response = yourComponent.functionName(form.xlsfile)>
<Cflocation url="done.cfm">
done.cfm
<html>....</html>