You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用AjaxControlToolKit AjaxFileUpload(v18.1.1)允许无扩展名文件上传?

解决AjaxControlToolKit AjaxFileUpload(v18.1.1)允许无扩展名文件上传的问题

我之前也碰到过这个情况,针对你使用的v18.1.1版本,有两种靠谱的解决办法,你可以根据自己的需求选:

方法一:通过web.config配置快速实现

AjaxFileUpload的扩展名白名单默认是不包含无扩展名文件的,我们只需要在web.config的<appSettings>节点里调整配置,把空扩展名的情况加入允许列表即可。

具体配置代码如下:

<configuration>
  <appSettings>
    <!-- 这里保留你原本需要允许的扩展名,首尾加上|来允许无扩展名文件 -->
    <add key="AjaxControlToolKit.AjaxFileUpload.AllowedFileTypes" value="|.pdf|.doc|.docx|.jpg|" />
  </appSettings>
</configuration>

这里的关键是首尾的|——当文件没有扩展名时,控件会将空字符串与列表中的空条目匹配,从而允许上传。如果想允许所有文件(包括无扩展名的),直接把值设为*即可:

<add key="AjaxControlToolKit.AjaxFileUpload.AllowedFileTypes" value="*" />

配置修改后记得重启你的应用程序,让设置生效。

方法二:自定义控件实现更灵活的验证逻辑

如果配置方式满足不了你的需求(比如需要额外的自定义验证规则),可以继承原AjaxFileUpload控件,重写扩展名验证方法:

using AjaxControlToolkit;

public class CustomAjaxFileUpload : AjaxFileUpload
{
    protected override bool IsValidFileExtension(string fileName)
    {
        // 获取文件扩展名(无扩展名时返回空字符串)
        var fileExtension = System.IO.Path.GetExtension(fileName);
        
        // 如果文件没有扩展名,直接允许上传
        if (string.IsNullOrEmpty(fileExtension))
        {
            return true;
        }
        
        // 其他情况沿用原控件的验证逻辑
        return base.IsValidFileExtension(fileName);
    }
}

写完这个自定义控件后,在你的ASPX页面中注册并使用它即可,替换原来的AjaxFileUpload标签。

内容的提问来源于stack exchange,提问作者Dude

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 07:01:53