如何从TextBoxFor类型=文件ASP.NET MVC 4获取FileName?

时间:2014-05-28 07:06:17

标签: c# asp.net asp.net-mvc asp.net-mvc-4

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

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

型号:

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

我想获取上传文件的扩展名。我试过这个,其中image是来自表单的文件:

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

但它返回null。是否还有其他可能的文件扩展名?

2 个答案:

答案 0 :(得分:0)

尝试使用html文件上传控件

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

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

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

答案 1 :(得分:0)

对于文件扩展名的客户端验证,您可以使用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;
    }