如何阻止用户在 HTML 文件输入控件中手动编辑文件路径

本文关键字:编辑文件 路径 控件 输入 用户 何阻止 HTML 文件 | 更新日期: 2023-09-27 18:30:25

我有一个 asp.net 表单,其中包含 5 个带有 runat=server 的 HTML 文件输入控件和一个提交按钮。 用户选择文件并单击"提交"按钮后,文件将上载到服务器中。

问题是HTML文件输入控件是可编辑的,用户可以在从浏览按钮中选择文件后编辑路径。

如果他输入的文件路径无效,则不会上传该文件,因为它不存在。

如何阻止用户手动更改文件路径?我试图使控件只读,但它也禁用了浏览按钮。

如何阻止用户在 HTML 文件输入控件中手动编辑文件路径

你不能。编写服务器端逻辑以应对缺少的上传。

您可以尝试使用隐藏字段之类的操作,当用户从浏览中选择文件时,它也会填充到隐藏字段。 然后,当他们上传时,您可以从上传的隐藏字段中读取,或者使用 JS 将值替换回原始控件并从中读取。

这是你想要的吗...

您可以这样做,在用户选择文件时隐藏控件并仅显示用户的路径在div 中如果他不同意,让他单击路径div 旁边的名为"选择另一个"的链接,因此当用户单击"选择另一个"时,切换相同的div 并刷新前一个值

看到这个小提琴:http://jsfiddle.net/T2D3X/

虽然 Brian 的建议有效(谢谢 brian),但最终我们决定遵循服务器端处理方法。 由于在文件无效的情况下,文件大小将为零,因此响应是即时的,我们不需要等到文件上传,因为在这种情况下,首先没有文件。

//check if file exists
                if (uploadCtrl.PostedFile.ContentLength > 0)
                {
                    uploadCtrl.PostedFile.SaveAs(fileNameWithPath);
                    uploadCtrl.Dispose();
                }
                else
                {
                    fileNameWithPath = "invalid";
                } 

您还可以使用以下方法:

验证前一个:http://jsfiddle.net/T2D3X/1/

一个 验证后:http://jsfiddle.net/T2D3X/2/

在我重新修改之前,我的朋友发布了相同的答案。

第二个链接上有一些内部 jsfiddle 错误,您可以忽略它,我刚刚添加了更多功能来检查提交您正在发送的确切值。

如果您觉得它有帮助,请告诉我们;)谢谢!