是否可以使用 <input type="file"> 来发布文件名而不实际上传文件?

Posted

技术标签:

【中文标题】是否可以使用 <input type="file"> 来发布文件名而不实际上传文件?【英文标题】:Is it possible to use <input type="file"> just to post the filename without actually uploading the file? 【发布时间】:2011-01-11 15:52:26 【问题描述】:

好吧,我真的不知道如何总结标题。我需要创建一个表单,用户可以在其中指定现有文件,但我不需要上传它(它位于已经可以访问的共享服务器上)——我只需要获取文件名并将其保存在数据库中,这样就可以了链接到其他数据。

我考虑过输入标签,因为它为用户的文件系统提供了一个方便的已经完成的接口,但我不知道是否可以在没有实际上传的情况下使用它(省略 enctype="multipart/form-data" 似乎不起作用)。我可以调整它以使其工作,或者除了编写自定义迷你文件浏览器之外还有其他方法吗?

编辑:我需要文件的完整路径名,要求用户输入它是不可能的......

【问题讨论】:

您不会获得完整的路径名,因为这与 Web 服务器的观点无关。 只能获取文件名,不能获取完整路径。见***.com/questions/2027276/… 我也相当肯定 html 规范甚至不保证你会得到一个文件名,尽管大多数浏览器都会传入它。 【参考方案1】:

您可以将&lt;input type="file"&gt; 放在HTML 表单之外,然后使用onChange 事件在发布的表单中填写&lt;input type="hidden"&gt;

<input type="file" 
       onchange="document.getElementById('hidden_file').value = this.value;" />

<form method="POST">
    <input type="hidden" id="hidden_file" value="" />
    <input type="submit" />
</form>

【讨论】:

这太棒了,但真的没有办法检索完整路径吗? 不幸的是:***.com/questions/1676035/…,但您可能需要进一步调查:***.com/questions/81180/…

以上是关于是否可以使用 <input type="file"> 来发布文件名而不实际上传文件?的主要内容,如果未能解决你的问题,请参考以下文章

使用 <input type=“file”> 时的图像格式下拉菜单?

在 React 中禁用 `<input type=number>` 的滚动

js判断输入框及提交

jquery td元素里面的input type="checkbox" id ="a1"的元素怎么获取这个复选框?

jQuery如何获取多个input输入框的值,并存放在一个数组中

<input type="file" /> 的 HTML 助手