【发布时间】:2014-12-18 02:58:53
【问题描述】:
我还是 ColdFusion 的新手,在将 cffile 上传到会话和从另一个页面读取时遇到了一些问题。基本上,我的主要目标是将文本文档正确上传到会话,最后,将其显示在另一个 cfm 页面上。
Form.cfm:
<cfif not structKeyExists(session.checkout, "input")>
<cfset session.checkout.input = {textname="", textemail="", docattach=""}>
</cfif>
<cfparam name="form.textname" default="#session.checkout.input.textname#">
<cfparam name="form.textemail" default="#session.checkout.input.textemail#">
<cfparam name="form.docattach" default="#session.checkout.input.docattach#">
<cfif structKeyExists(form, "Submit")>
<cfset form.textname = trim(htmlEditFormat(form.textname))>
<cfset form.textemail = trim(htmlEditFormat(form.textemail))>
<cffile action="upload" fileField="docattach" destination="#session.checkout.input.docattach#" nameConflict="overwrite">
<cfset session.checkout.input = {textname=form.textname, textemail=form.textemail, docattach=<--How do I store cffile upload result here?-->}>
<cflocation url="formcomplete.cfm" addToken="false">
</cfif>
<!DOCTYPE html>
<html>
<head>
FormComplete.cfm
<cfif not structKeyExists(session, "checkout")>
<cflocation url="form.cfm" addToken="false">
</cfif>
<cffile action="read" file="#session.checkout.input.docattach#" variable="attachment">
<!DOCTYPE html>
<html>
<head>
...
</head>
<body>
<cfoutput>
Name: #session.checkout.input.textname#</br>
Email: #session.checkout.input.textemail#</br>
Business Rationale: #attachment# </br>
</cfoutput>
</body>
</html>
那么我该如何将它放入会话中呢?另一个问题是显示图像或文档的结果。我可以使用哪些命令?
【问题讨论】:
-
为什么你认为你需要把它放到会话范围内?
-
@DanBracuk 那么您有什么替代方法可以推荐吗?例子?
-
我建议简单。而且,一步一个脚印。将您的表单提交到首先上传文件的页面。你用它做什么取决于它的类型,但假设它是一个图像。您可以使用 html 锚标记来显示它。如果是另一种文件类型,您可能需要查看 cfheader 和 cfcontent 标签。
-
@DanBracuk 我可能听起来很愚蠢。但是..我要上传到哪里?本地目录?
-
这个问题可以通过实际包含您收到的完整异常/堆栈跟踪来改进。
标签: file session exception coldfusion