jquery - 是否可以使用 jQuery 将文件从文件输入传递到 Controller ?

标签 jquery asp.net-mvc file-upload httppostedfilebase

我正在尝试将文件作为 HttpPostedFileBase 传递到我的 Controller ,以便我可以解析该文件并将信息传递回页面。例如,我想允许用户导入 vCard,并让它自动填充联系人创建表单 PartialView。

我想通过传入文件、填充我的模型,然后返回要在页面上显示的表单的 PartialView 来完成此操作。我尝试过像下面这样的 jQuery,但我永远无法让我的 HttpPostedFileBase 正确传递(始终为 null)。请记住,我需要在发布后访问文件的 InputStream。

var file = "files=" + $("#fileInput").files[0];
$.post("/Contacts/UploadContact/", file, function (returnHtml) {
    alert(returnHtml);
    $("#contactContainer").html(returnHtml);
});

是否可以通过 jQuery 将文件作为 HttpPostedFileBase 发布到我的 Controller ?

最佳答案

    Same result can be achieved without `jquery` usage, merely you can use `XMLHttpRequest`
Example:

**Index.cshtml**

    <script src="http://code.jquery.com/jquery-1.10.1.min.js"></script>
    <script src="@Url.Content("~/Scripts/scripts.js")" ></script>
    <input type="file" id="fileInput" />
    <input type='button' id='go' value="go" />

 $('#fileInput').on("change", function () {      

             var xhr = new XMLHttpRequest();
             var VideofileS = new FormData($('form').get(0));
             xhr.open("POST", "/Contact/UploadContact/");
             xhr.send(VideofileS);
             xhr.addEventListener("load", function (event) {
             alert(event.target.response);
            }, false);
   });   
    });

关于jquery - 是否可以使用 jQuery 将文件从文件输入传递到 Controller ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19695408/

相关文章:

asp.net-mvc - 为什么角色声明的类型不正确?

angularjs - 使用 Protractor 测试上传文件失败

javascript - 部分JS代码阻止表单提交并保存在数据库中

javascript - 为什么在检索日期选择器值时我的函数会阻止检索其他值?

javascript - 在 HTTPS 页面中运行 HTTP AJAX 操作时出现 "Mixed content blocked"

javascript - AJAX上传文件

javascript - 如果在模板返回之前删除元素,则 knockout 组件将失败

asp.net-mvc - Windows Server 2008 R2 上的 ASP.NET MVC 3 部署 403 错误

java - 从jsp上传文件

c# - C# 中用于视频的文件上传控件