使用ASP.NET MVC使用Ajax调用上载文件

Sha*_*nky 2 c# asp.net asp.net-mvc jquery

我想使用以下命令在我的页面中上传文件:

<input type="file" name="FileName">
Run Code Online (Sandbox Code Playgroud)

我有一个按钮,点击完成ajax帖子.

$.ajax({
           cache: false,
           async: true,
           type: "POST",
           url: '@Url.Content("~/OCR/OCRProcessor")',
           data: '',
           success: function (data) {
               $('#ocrresult').val(data);
           }
       });
Run Code Online (Sandbox Code Playgroud)

我想在控制器动作方法中上传文件,如下所示:

HttpPostedFileBase hpf = Request.Files["FileName"] as HttpPostedFileBase 
Run Code Online (Sandbox Code Playgroud)

请让我知道实现此任务的最佳方式.

Sub*_*cob 8

在这种情况下,jquery Forms插件(GitHub Link)将是一个理想的选择.你可以这样做.(包括此表单中的文件输入)

$('#myFormId').submit(function() { 
    // submit the form 
    $(this).ajaxSubmit(); 
    // return false to prevent normal browser submit and page navigation 
    return false; 
});
Run Code Online (Sandbox Code Playgroud)

演示

这将是一个无插件方法(仅在Html5中),但我仍然推荐插件

$("#myFormId").submit(function(){

    var formData = new FormData($(this)[0]);

    $.ajax({
        url: "YourPath/ToAction",
        type: 'POST',
        data: formData,
        async: false,
        success: function (data) {
            alert(data)
        },
        cache: false,
        contentType: false,
        processData: false
    });

    return false;
});
Run Code Online (Sandbox Code Playgroud)

另一个不错的插件.

  • 你能否在不使用jquery插件的情况下建议任何方法. (2认同)