【问题标题】:coldfusion cffile upload replace no file selectedColdfusion cffile 上传替换未选择文件
【发布时间】:2021-02-04 22:44:56
【问题描述】:

在 Coldfusion 中,使用 cffile 上传,当使用浏览按钮选择文件时,所选文件的名称会显示在按钮旁边。到现在为止还挺好。当我提交要上传的文件时,文本变回“未选择文件”。这无疑是因为我们正在提交一个表单。

但是,我将表单提交到同一页面,并希望看到所选文件的名称而不是“未选择文件”,这可能会使用户感到困惑。

代码:

<form 
 enctype="multipart/form-data" 
 method ="post" 
 name   ="attupload"  
 action ="">

<cfoutput>   
   <table style = "margin-left: 40%">
  <tr><td>
   <input name="theupload" 
          type="file" 
          style = "font-family: comic sans ms; 
                   color: ##679C9C">        
  </td></tr>
  </table>
   <div style = "width:20%; margin:5% auto 5% 45%">  
     <input name  = "submit" 
            type  = "submit"
            class = "submitbut" 
            style = "font-size: 16px"
            value = "Upload File"> 
   </div> 

</cfoutput>   
</form>

'no file selected' 似乎是输入 name = 'upload' 字段的一部分,但 ColdFusion 显然控制了它,我无法插入其他任何内容。

有谁知道我可以如何控制“未选择文件”注释,以便我可以将所选文件的名称放回那个位置?我尝试过使用 javascript,但它被忽略了。

【问题讨论】:

    标签: coldfusion upload cffile


    【解决方案1】:

    选择文件后,您可以通过 JavaScript 使用 File API 访问其属性。您不能使用 JavaScript 影响默认 &lt;input type="file"&gt; 字段旁边显示的值。

    https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/file

    您还应该避免将表单提交到同一页面。您应该遵循以下流程:

    • 表单页面
    • HTTP POST 到表单处理页面。
    • 表单处理后,&lt;cflocation&gt;(301 重定向)返回到列表页面或表单页面。

    当您发布到同一页面时,用户可以点击重新加载并提示重新提交表单数据。这在许多情况下可能是有问题的。作为替代方案,您可以使用Ajax 或更好的方式通过Fetch 发布表单数据。这样可以避免在重新加载页面时重新发布并从当前屏幕重定向。

    另外,您应该避免将&lt;input type="submit"&gt; 命名为“提交”。如果您需要使用它,它可能会与 JavaScript 函数 submit() 冲突。

    <input name  = "submit" 
            type  = "submit"
            class = "submitbut" 
            style = "font-size: 16px"
            value = "Upload File"> 
    

    【讨论】:

    • 你说得对,我应该把它提交到另一个页面。你说我不能用 JavaScript 影响默认 字段旁边显示的值。我想知道你是否知道另一种影响它的方法?你知道它是如何工作的吗?它似乎是一个 HTML 属性,而不是冷融合。
    • 重新输入提交按钮,name = "submit" 是错误的,我已将其删除。至于 type = submit,在我的所有代码中要么有一个 type = submit 的提交按钮,要么我使用 submit() 使用 javascript 提交表单。但是,两者都不存在。
    • 传统上,出于安全原因,文件输入值是只读的。不确定 html5 是否改变了 stackoverflow.com/questions/1696877/…
    猜你喜欢
    • 1970-01-01
    • 2014-05-02
    • 1970-01-01
    • 2013-10-09
    • 1970-01-01
    • 1970-01-01
    • 2011-03-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多