如何通过ajax上传文件

Job*_*mno 5 upload jquery file-upload asp.net-mvc-3

我有文件上传,不使用表单上传文件,而是我想使用ajax上传它.我尝试了以下方法,但我无法传递该文件.它是空的.请帮忙.以下是我的实施.

HTML和jQuery函数

<div id="Upload">
    <input type="file" accept="application/x-shockwave-flash" id="virtualtourfile" enctype="multipart/form-data"/>
    <input type="button" value="Upload" id="btnUpload"/>
</div>

$('#btnUpload').click(function () {
            $.ajax({
                url: "uploadvideo",
                type:'POST',
                data: $("#virtualtourfile:file"),
                success: function (data) {

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

调节器

public ActionResult UploadVideo(HttpPostedFileBase file)
        {
            return Json("", JsonRequestBehavior.AllowGet);
        }
Run Code Online (Sandbox Code Playgroud)

Dar*_*rov 2

有几个选择。如果客户端浏览器支持,HTML5 File API您可以使用它将文件异步上传到服务器。如果您需要支持不支持此 API 的旧版浏览器,您可以使用文件上传组件,例如UploadifyFine uploaderjquery form、 ... 这些插件的优点是它们将测试浏览器的功能以及它是否支持文件 API它会使用它,否则它将回退到较旧的技术,例如隐藏的 iframe 或 Flash 电影。