如何获得文件名从TextBoxFor类型=文件ASP.Net MVC 4

本文关键字:ASP 文件 Net MVC 类型 何获得 文件名 TextBoxFor | 更新日期: 2023-09-27 18:05:34

我的视图中有文件上传控件:

@Html.TextBoxFor(model=>model.File, "", new { type = "file" })

模型:

public class ImageModel
{
    public HttpPostedFile File {get; set;}
}

我想获得上传文件的扩展名。我尝试了这个,其中图像是来自表单的文件:

string extension = Path.GetExtension(image.File.Name);

但是返回null。是否有其他可能获得文件扩展名?

如何获得文件名从TextBoxFor类型=文件ASP.Net MVC 4

尝试使用html文件上传控件

<input type="file" id="fileToUpload" name="file" />

然后在控制器中添加如下功能

[HttpPost]
public ActionResult FileUpload(HttpPostedFileBase file)
{
    string extension = Path.GetExtension(file.FileName);
}

对于文件扩展名的客户端验证,您可以使用JavaScript。当文件输入发生变化时调用

<script type="text/javascript">
    var onChanged = function() {
        var inputFile = document.getElementById("uploadBtn");    
        var fileName = inputFile.value.replace(/^.*['''/]/, '');

        if (validateFileExtension(fileName) {
            //extension is valid
        }else {
            //show error 
        }
    }
    function validateFileExtension(name) {
        if (!/('.xlsx)$/i.test(name)) {
            return false;
        }
        return true;
    }