ASP.NET-验证Excel文件内容

时间:2018-09-28 15:00:38

标签: javascript asp.net excel

我有一个带有文件输入的页面,用户应在该页面上载一个excel文件,以将大量记录插入到特定表中。我发现此Javascript代码可帮助验证插入的文件是否具有所请求的Excel扩展名之一:

var hash = {
    'xls': 1,
    'xlsx': 1,
};

function checkExtension() {
    var filename = $("#uploadFile").val();
    var re = /\..+$/;
    var ext = filename.slice(filename.lastIndexOf(".") + 1).toLowerCase();
    if (hash[ext]) {
        return true;
    } else {
        alert("Invalid file type. Please insert a valid Excel file.");
        event.preventDefault();
        return false;
    }
}

但是,此代码在验证文件扩展名方面效率很高,它不会验证文件内容,从而使某人可以上传具有不同内容类型的文件,但其扩展名重命名为“ .xls”或“ .xlsx” 。如何解决这种情况?

1 个答案:

答案 0 :(得分:0)

您可以通过3个步骤正确验证Excel文件

  1. 在Asp.net中,FileUploader控件具有一个称为“接受” <asp:FileUploader accept='.xls,.xlsx'/>的属性。默认情况下,它将允许用户仅选择xls和xlsx扩展文件。但是,用户仍然可以选择“所有文件”选项以上传另一个文件。

  2. 验证文件名的扩展名是否包含来自Javascript的.xls以及背后的代码。

  3. 使用Aspose.Cells dll并尝试获取xls文件,如果该文件不是xls或xlsx,它将返回异常'InvalidFileFormatException'。