Asp.net Core-在使用 javascript 或 C# 上传之前选择和验证 excel 文件?

Posted

技术标签:

【中文标题】Asp.net Core-在使用 javascript 或 C# 上传之前选择和验证 excel 文件?【英文标题】:Asp.net Core-choose and Validate excel file before uploading using javascript or C#? 【发布时间】:2022-01-20 21:48:57 【问题描述】:

1-如何只选择 Excel 格式的文件?

2-如何在 javascript 和 C# 中验证文件格式?

我在 Asp.Net Core 3.1 中使用 EPPlus 插件?

html

<form id="SelectExcelForm" method="post">
  <div class="form-group">
    <div class="form-line">
      <input type="file" name="ExcelFile" class="form-control" />
      <span class="text text-danger">True Format : xlsx </span>
    </div>
  </div>
  <div class="modal-footer">
    <button type="button" onclick="return ValidateForm()" class="btn btn-info waves-effect">Save</button>
  </div>
</form>

【问题讨论】:

对于客户端验证:***.com/a/4329008/6310593,服务器端可以检查扩展名和文件头字节。 【参考方案1】:

如果要在C#代码中验证文件格式,可以使用以下代码:

<input type="file" name="ExcelFile" class="form-control" accept=".xls,.xlsx" />

这样,选择框中只能看到Excel格式的文件。

当你想使用 JS 进行验证时,你可以使用这些代码:

<input type="file" name="ExcelFile" class="form-control" onchange="fileChange(this)" />

    <script>
        function fileChange(target) 
            var name=target.value;
            var fileName = name.substring(name.lastIndexOf(".")+1).toLowerCase();
            if(fileName !="xls" && fileName !="xlsx")
                alert("please upload file in Excel forma!");
                target.value="";
                return false;   
            
        

    </script>

这样,你可以在选择框中看到所有格式的文件,但是当你选择其他格式的文件时,会上传失败。

【讨论】:

以上是关于Asp.net Core-在使用 javascript 或 C# 上传之前选择和验证 excel 文件?的主要内容,如果未能解决你的问题,请参考以下文章

ASP.NET Core中的缓存[1]:如何在一个ASP.NET Core应用中使用缓存

在 ASP.NET Core 6.0 中使用 Serilog

ASP.NET Core学习笔记 第一篇 ASP.NET Core初探

ASP.NET Core Web 应用程序系列- 在ASP.NET Core中使用Autofac替换自带DI进行批量依赖注入(MVC当中应用)

如何在 ASP.Net Core 中使用 IHostedService

asp.net core中托管SPA应用