【问题标题】:Coldfusion forms and image upload with cffile使用 cffile 上传 Coldfusion 表单和图像
【发布时间】:2011-03-28 15:16:52
【问题描述】:

我正在学习一些 Coldfusion,但我在为同事构建的这个基于表单的小型应用程序时遇到了问题。

这是第一页:http://pastebin.com/aLPYHPsF

如您所见,我想要做的是获取用户输入并将该输入输出到 html。文字工作正常,但我无法上传图片!我想要做的是让用户点击上传,得到确认,然后点击提交,他们被发送到生成的 html (cfm) 页面。页面上是他们上传的图片的调整大小版本。 请告诉我我做错了什么!现在当点击“上传”时,表单只是转储。

【问题讨论】:

    标签: image forms coldfusion upload cffile


    【解决方案1】:

    您可能想考虑使用<cfdiv> 来上传图片。基本上你希望上传图片的表单在<cfdiv> 内,这样表单就可以通过ajax 提交。将图像表单操作发布到使用 <cffileupload> 的 previewImage.cfm,如果它是图像文件,则使用 isImageFile() 验证,然后使用 <cfimage> 调整其大小并显示缩略图(可以使用 action="writetobrowser")。如果您不想编写额外的 Javascript,我猜想将上传的图像与父表单相关联的最简单方法是将文件路径存储在 Session 中。

    【讨论】:

      【解决方案2】:

      这是因为您忘记将 enctype="multipart/form-data" 分配给您的第一个 cfform。我已经编辑了你的一些编码。看看吧。

      <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>
      

      【讨论】:

      • ppshein,谢谢您的回复。但是,即使使用您所做的确切代码,此表单仍会在单击上传字段的提交按钮时转储。
      猜你喜欢
      • 1970-01-01
      • 2013-10-09
      • 1970-01-01
      • 2014-05-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-03
      相关资源
      最近更新 更多