gpt4 book ai didi

asp.net - 验证 asp 文件上传控件客户端

转载 作者:行者123 更新时间:2023-12-02 14:15:07 28 4
gpt4 key购买 nike

我的页面上有一个 asp 文件上传控件。如何在客户端验证所选文件。验证规则:1. 文件必须是 jpeg、png、bmp 或 gif。2. 文件大小必须在 25 kb 和 2 mb 以内。请帮忙。谢谢。
我已尝试使用以下代码来验证扩展

<asp:FileUpload ID="FileUpload2" runat="server"/>                    
<asp:CustomValidator ID="CustomValidator1" runat="server" ClientValidationFunction="ValidateFileUpload" ErrorMessage="Invalid file type. Only .gif, .jpg, .png, .bmp and .jpeg are allowed." ControlToValidate="FileUpload2" ValidationGroup="update">&nbsp;</asp:CustomValidator>
<script language="javascript" type="text/javascript">
function ValidateFileUpload(Source, args) {
var fuData = document.getElementById('<%= fuData.ClientID %>');
var FileUploadPath = fuData.value;

if (FileUploadPath == '') {
// There is no file selected
args.IsValid = false;
}
else {
var Extension = FileUploadPath.substring(FileUploadPath.lastIndexOf('.') + 1).toLowerCase();

if (Extension == "jpg" || Extension == "jpeg" || Extension == "png" || Extension == "gif" || Extension == "bmp") {
args.IsValid = true; // Valid file type
}
else {
args.IsValid = false; // Not valid file type
}
}
}
</script>

最佳答案

您无法通过客户端脚本确定文件输入元素中所选文件的大小。为了确定文件的大小,必须具有对该文件的读取访问权限。正如您可能想象的那样,允许 JavaScript 读取您计算机上的文件将是一个“非常糟糕的主意”。™

我经常看到此类问题,并且认为对于文件输入元素的实际用途存在一些困惑。当用户选择文件时,文件字节不会“加载”到此元素中,以便它们可供读取。相反,输入指定对文件位置的引用,以便浏览器知道 - 当表单发布时 - 对文件进行编码并通过 POST 发送。此过程是浏览器内部的,不会以可由脚本利用的方式暴露给客户端。

如果您需要进行文件大小验证,您应该在可以访问实际文件字节的服务器上进行。如果您担心人们用非常大的文件“淹没”您的网站,您可以通过配置 IIS 实例来指定允许的最大 POST 大小。

关于asp.net - 验证 asp 文件上传控件客户端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10045419/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com