在asp net mvc中处理输入类型文件

时间:2013-01-29 19:41:12

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

我做了一个深入的研究,试图找到从客户端上传文件的更实用的方法,我决定去输入类型文件html元素。

问题是: 我在控制器中什么也得不到,我甚至无法看到在firebug中设置了伪路径字符串。

查看:

<form action="action" id="id" method="POST" enctype="multipart/form-data">
    <table id="tblId">            
        <tr>
            <td><input type="file" name="file" /></td>
        </tr>
    </table>
    <input type="submit" value="import" />
</form>   

正如您所看到的,我正在使用enctype。数据已按原样发送到控制器,但没有数据。

控制器:

[HttpPost]
public ActionResult opImportFile(FormCollection form) {


    var file = Request.Files["file"];
        if (file != null)
        {
            return Content("ok");
        }
        else
        {
            return Content("bad");
        }
}

我总是变得“糟糕”!太糟糕了。 还有其他方法我可以尝试或者我做错了吗?

P.S - &gt;这是一个ajax请求:

$('#formUpdStoringSettings').submit(function (e) {

    e.preventDefault();    
    var form = $(this);       
    alert($('input[name=file]').val()); //Here I am able to get the fakepath...
    alert(form.serialize());  //Here I get nothing...

    $.ajax({
        url: form.attr('action'),
        type: form.attr('method'),
        data: form.serialize(),
        success: function (response) {
        }
   });
}

1 个答案:

答案 0 :(得分:1)

您可能需要使用jQuery upload plug-in才能使用AJAX上传。