我正在学习一些Coldfusion,而我在为同事建立这个基于小型表格的应用程序时遇到了麻烦。
以下是第一页:http://pastebin.com/aLPYHPsF
正如您所看到的,我想要做的是获取用户输入并获取该输入并将其输出到html。文本的东西工作正常,但我无法上传图像!我想要做的是让用户点击上传,获得确认,然后点击提交,然后将它们发送到生成的html(cfm)页面。在页面上是他们上传的图像的大小调整版本。 请告诉我我做错了什么!现在,当点击“上传”时,表格就会转储。
答案 0 :(得分:3)
这是因为你忘了给你的第一个cfform分配enctype =“multipart / form-data”。我编辑了一些你的编码。看看吧。
<cfset strPath = ExpandPath( "./" ) />
<cfset strPath = GetDirectoryFromPath(GetCurrentTemplatePath()) />
<table width="100%">
<tr>
<td align="center">
<cfform name="ecaform" action="ecagenerator.cfm" enctype="multipart/form-data">
<table style="font-family: arial; font-size: 9pt">
<tr><td height="30px" align="center" colspan="2" style="background-color: #020058; color: #FFFFFF; font-family: arial;">
<b>ECA Newsletter Creation Form</b>
</td>
</tr>
<tr><td height="20"></td></tr>
<tr>
<td>Earned from:</td>
<td>
<cfinput
type="radio"
name="earnedfrom"
value="UC">
UC
<cfinput
type="radio"
name="earnedfrom"
value="ECA">
ECA
</td>
</tr>
<tr>
<td>First Name:</td>
<td>
<cfinput
name="firstname">
</td>
</tr>
<tr>
<td>Last Name:</td>
<td>
<cfinput
name="lastname">
</td>
</tr>
<tr>
<td>Instructor's Name:</td>
<td>
<cfinput
name="instructorname">
</td>
</tr>
<tr>
<td>Date (MM/DD/YYYY):</td>
<td>
<cfinput
name="date">
</td>
</tr>
<tr>
<td>Sex:</td>
<td>
<cfinput
type="radio"
name="sex"
value="male">
Male
<cfinput
type="radio"
name="sex"
value="female">
Female
</td>
</tr>
<tr>
<td>Certificate Type:</td>
<td>
<cfinput
type="radio"
name="certtype"
value="Private">
Private
<cfinput
type="radio"
name="certtype"
value="Recreational">
Recreational
<cfinput
type="radio"
name="certtype"
value="Commercial">
Commercial
</td>
</tr>
</table>
<table style="font-family: arial; font-size: 9pt; margin-top: 20 px;">
<tr>
<td>
Upload the photo:
</td>
</tr>
<tr>
<td>
<cfif isDefined("form.fileUpload")>
<cffile action="upload"
fileField="fileUpload"
destination="#strPath#"
accept="image/*">
<cfimage action="resize"
width="200"
height="200"
source="#strPath##file.serverfile#"
destination="#strPath##file.serverfile#"
overwrite="yes">
<img src="<cfoutput>#file.serverfile#</cfoutput>">
</cfif>
</td>
</tr>
<tr>
<td>
<form enctype="multipart/form-data"
method="post">
<input type="file"
name="fileUpload" /><br /><br />
<input type="submit"
value="Submit"
action="ecagenerator.cfm" />
</form>
</td>
</tr>
</table>
<table style="margin-top: 20px;">
<tr>
<td>
<cfinput
type="submit"
name="Submit"
value="Submit">
</td>
</tr>
</table>
</cfform>
</td>
</tr>
</table>
答案 1 :(得分:1)
您可能希望将<cfdiv>
用于图片上传部分。基本上您希望图像上传的表单位于<cfdiv>
内,以便通过ajax提交表单。将图像表单操作发布到使用<cffileupload>
的previewImage.cfm,如果它是图像文件则使用isImageFile()
进行验证,然后使用<cfimage>
调整其大小并显示缩略图(可以使用action="writetobrowser"
)。如果您不想编写额外的Javascript代码,那么将上传的图像与父表单相关联的最简单方法是在Session I中存储文件路径。