验证 asp 文件上传控件客户端

2024-01-15

我的页面上有一个 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 大小。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

验证 asp 文件上传控件客户端 的相关文章

  • EF存储库模式多对多插入

    我们有 2 张桌子 表权限 public class Authority public int ID get set public string Name get set 表代理 public class Agent public int
  • 数字或货币的字符串格式?

    我需要为每个千给出逗号 所以我用了DataFormatString 0 它运行良好 但当值为0 它正在显示 00 我只想只显示 0 我们怎样才能做到这一点 DataFormatString 0 C0 这将格式化为小数点后 0 位的货币 Da
  • 如何从 ASP.net 网站写入 OutputDebugString?

    我需要从网站上的代码输出一些调试信息 我怎样才能打电话OutputDebugString来自 ASP net 网站 并将其显示给运行 DbgView 的用户 Note 网站不支持System Diagnostics Trace TraceW
  • 在 Dapper 中处理 Oracle 数据库连接

    我正在尝试连接到 Oracle 数据库并尝试执行查询 下面是我的模型类 using System using System Collections Generic using System Linq using System Web usi
  • ASP.NET MVC:我什么时候应该创建自定义视图引擎

    我知道什么View Engine是 我更喜欢使用Razor视图引擎只是因为它的语法简单ASPX引擎 内置视图引擎为您执行几乎所有任务 那么在什么情况下我应该创建自己的视图引擎 我用谷歌搜索了它 但得到了如何创建它的答案 而不是何时以及为什么
  • 将 .MDF SQL Server 数据库与 ASP.NET 结合使用与使用 SQL Server

    我目前正在 ASP NET MVC 中编写一个网站 我的数据库 其中还没有任何数据 只有正确的表 使用 SQL Server 2008 我已将其安装在我的开发计算机上 我使用服务器资源管理器从应用程序连接到数据库 然后使用 LINQ to
  • 将图像添加到 ASP.Net 中的单选按钮列表

    我正在尝试将图像添加到单选按钮列表控件 但它不起作用 我试过这个 RadioButtonList2 Items Add new ListItem String Format src Colors Dallas 625527 1 1 png
  • 使用 PhoneGap + iPhone 上传文件

    据我所知 PhoneGap 应用程序大部分 如果不是全部 都是 HTML5 CSS JavaScript iPhone 本身不提供上传文件的控件 PhoneGap是否提供任何允许用户上传文件的机制 图片 视频 以 iPhone 为例 我知道
  • 如何让浏览器后退按钮通过 AJAX 调用带您返回?

    我有一个页面 上面有很多动态生成的复选框 当用户单击这些复选框时 页面上的许多内容会通过 ajax 动态更改 最终用户抱怨 在点击提交然后点击后退按钮更改某些内容后 他们的选择被破坏了 他们必须重新做一遍 我见过一些网站 gmail fac
  • 在 ASP.NET 中动态设置主题

    我有一个连接到不同域的应用程序 我没有复制和修改每个应用程序 而是在硬盘驱动器上使用相同的物理位置 但在 IIS 上使用单独的应用程序池和网站 基本上我想根据主机名更改主题 IE 用户访问 websome com 获取 websome 主题
  • sitecore 站点内嵌套虚拟目录或应用程序是否可能

    我想将 ASP NET Web 应用程序嵌套在 sitecore 站点中 如下所示
  • 强制 IDataErrorInfo 验证

    我在某个面板上有两个控件 文本框和组合框
  • 如何使用泛型类型的 DataContractSerializer 编写自定义序列化器?

    我想编写一个自定义序列化器 用于将会话状态存储到Azure 缓存 预览版 这意味着这个自定义序列化器必须实现IDataCacheObjectSerializer 如果我错了 请告诉我 我需要编写这个自定义序列化程序的原因是我需要序列化一些包
  • 您会认为这是单例/单例模式吗?

    想象一下 在 Global asax cs 文件中 我有一个实例类作为私有字段 我们这样说 private MyClass myClass new MyClass 我在 Global 上有一个名为 GetMyClass 的静态方法 它获取当
  • 如何从asp net core中的AuthorizationFilter重定向到登录页面?

    当我回来时ForbidResult 它重定向到AccessDenied启动时指定的页面 我想做同样的事情UnauthorizedResult 但重定向到Login page P S 我没有使用标准Authorize控制器中的属性我有自己的
  • 同时从2个表中删除?

    我正在使用 asp net 和 sql 服务器 我有 2 个表 类别和产品 在产品表中 我的categoryId 为FK 我想要做的是 当我从类别表中删除类别时 我希望该类别中的所有产品都将在产品表中删除 如何才能做到这一点 我更喜欢使用存
  • Mac 应用程序商店 - 尝试让加密发挥作用。 。 。我缺少什么?

    我正在尝试使用 Alan Quartermain 的解决方案 如该问题所链接 Mac App Store 收据验证码 https stackoverflow com questions 4261348 mac app store recei
  • 回发后刷新时提示确认表单重新提交。我做错了什么?

    我有一个以空白 默认状态启动的仪表板 我让用户能够将保存的状态加载到仪表板中 当他们单击 应用 按钮时 我运行以下代码 function CloseAndSave var radUpload find radUpload1ID var in
  • 在 iFrame 内维护会话状态

    不确定我是否疯了 但我在 iFrame 内的会话状态遇到问题 它是一个域在另一个域中的简单设置 我不需要跨域共享任何内容 我想做的就是将一个网站嵌入到另一个网站中 并且我希望该嵌入网站能够使用 cookie 会话状态登录 编辑 更新 等 为
  • DbContext 和 ObjectContext 有什么区别

    From MSDN 表示工作单元和存储库模式的组合 使您能够查询数据库并将更改分组在一起 然后将这些更改作为一个单元写回存储 DbContext在概念上类似于ObjectContext 我虽然DbContext只处理与数据库的连接以及针对数

随机推荐

  • React 表单组件 onSubmit 处理程序不工作

    我有以下 React 组件 class Form extends React Component handleSubmit e e preventDefault let loginInput ReactDOM findDOMNode thi
  • Spring 事务因 iptables 命令而挂起

    作为进程错误处理的一部分 我们尝试使用以下 iptables 命令禁用进程与数据库计算机侦听器端口之间的通信 iptables A INPUT p tcp destination port
  • Cloud Foundry如何处理进程隔离?

    假设我使用 上提供的开源 Cloud Foundry 实现设置了自己的云cloudfoundry org http www cloudfoundry org 我部署的每个应用程序都会作为单独的用户运行吗 或者这里使用了VMWare的虚拟化技
  • MVC 中的 Bootstrap 模式,双背景 - 背景出现两次

    我在使用 jQuery 生成引导模式时注意到一个问题 在动态生成的部分视图 我的模式 中添加更多 JavaScript 会导致出现双背景 有谁知道为什么会发生这种情况 我正在使用 jquery 1 8 2 js 和 Bootstrap v3
  • 通过HTA触发宏的VBS(无法运行宏)

    我有一个 HTA 脚本 它最终触发代码的 vbs 部分来调用 VBA 宏 但由于某种原因我收到此错误 我已经确保启用了对 VBA 的信任访问 因此我觉得我的代码中的某些内容与 HTA 不兼容 这是代码 提前感谢您的宝贵时间
  • 根据特定条件连接 RxJ 中的两个可观察流

    我有两个对象流 帐户和余额 我需要根据以下内容合并 加入 两个流id and account id var accounts Rx Observable from id 1 name account 1 id 2 name account
  • VBA-获取鼠标移动事件中的标签名称

    我有以下问题 我的工作表中有很多以结构化方式命名的标签 Label1 Label2 Label9 并为所有标签分配了鼠标移动事件宏 我想获取表A1 A9中的第i个值 其中 i 是当前 触摸 的标签号 有没有一种简单的方法可以在 mouse
  • GIT:无法从存储库中删除文件

    目前 我们被迫将存储库从 Gitlab 迁移到 Github 当我们想使用 git push u origin master 将我们的存储库推送到 Github 时 不幸的是 这会导致以下错误 复制输出 1 remote error GH0
  • 开源非分发许可证[关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 通常我是 A GPL 的忠实粉丝 并发布由其许可的软件 然而 这一次我认为我不能允许重新分发我的软件 因此 我正在寻找一个许可证 上面写着 1 使我的
  • Tkinter Menubutton 小部件键绑定以在同一窗口中打开菜单小部件元素

    我在菜单中创建了一个子菜单Menubutton and Menu小部件 from tkinter import root Tk def f event submenu invoke 0 mainmenu Menubutton root te
  • Microsoft Azure 帐户上的 Microsoft Visual Studio 凭据错误

    我试图将我的 Web 应用程序部署到 Microsoft Azure 当我输入 Microsoft 帐户的凭据时 出现此错误 并且我无法寻求解决方案 但是 我尝试通过 Microsoft Visual Studio 本身登录并收到相同的错误
  • 如果javascript只在特定页面上使用,为什么不应该将其放在视图中?

    In writes 不引人注目的 JS 需要考虑的其他事情 您已经这样做了 是您确实需要在应用程序中使用不显眼的 javascript 不显眼的 JS 基本上意味着您能够将页面的 绑定 抽象到资产管道中的 Javascript 文件 造成这
  • 如何允许用户从 Xamarin.Forms 标签复制和粘贴

    如何允许用户从 Xamarin Forms 标签复制和粘贴 在任何平台上单击文本 默认设置不允许突出显示 因此不允许复制和粘贴 任何帮助 将不胜感激 您可以做的是将标签包装在手势识别器中
  • javascript / jquery - 选择两个数字中较大的一个

    我正在尝试使用 javascript 选择两个数字中较大的一个 我知道我可以编写一个 if 语句 但我想知道是否有某种数学运算或其他东西可以提高效率 以下是我使用 if 语句执行此操作的方法 if a gt b c a else c b 我
  • 请求对象没有属性“accepted_renderer”

    如果出现这个问题会怎样 请求对象没有属性 accepted renderer 这些消息在我的日志中 处理此事件时遇到错误 丢弃参数 timestamp 的无效值 Expand 基本视图集类 class BaseViewSet Logging
  • Meteor JS 在客户端 html 上模拟服务器命令行

    我是 Meteor 的新手 想要制作一个简单的应用程序 我无法根据以下内容在服务器端模拟命令行http terokaisti blogspot com 2012 10 writing terminal app with meteor js
  • 使用 Windows 脚本宿主

    我正在将 Windows 脚本主机用于某种安装程序应用程序 并使用它在开始菜单中创建快捷方式 这个问题是我切换到x64环境 win7旗舰版x64 vs2010 时出现的 我添加了对 Windows 脚本宿主对象模型的引用 来自 c wind
  • 根据自定义 TreeItem 属性更改更新 TreeView

    我扩展了 TreeCell 和 TreeItem 类 MyTreeItem 包含一个自定义属性 我在 MyTreeCell 中使用它来渲染图形 字体等 问题是当我设置 MyTreeCell customProperty 时 我不确定如何使
  • 开始涉足 Android 平板电脑开发

    我最近买了一个Motorola XOOM用于开发 Android 应用程序的平板电脑 我在寻找学习资源方面遇到了重大问题 我了解Java Android 开发指南示例代码几乎全部依赖于键盘 否则无法在我的设备上运行XOOM 除了 Andro
  • 验证 asp 文件上传控件客户端

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