mvc使用ajax上传文件

今天干活时候遇到的一个问题,在mvc中使用ajax上传文件。使用Form方式提交文件我知道怎么做。但是使用ajax还真不知道。找了找资料解决了,下面是代码

<html>
<head>
    <title>Upload Example</title>
    <script src="~/Scripts/jquery-2.1.0.intellisense.js"></script>
    <script src="~/Scripts/jquery-2.1.0.js"></script>
    <script src="~/Scripts/jquery-2.1.0.min.js"></script>
    <script>
        $(document).ready(function () {
            $("#Upload").click(function () {
                var formData = new FormData();
                var totalFiles = document.getElementById("FileUpload").files.length;
                for (var i = 0; i < totalFiles; i++) {
                    var file = document.getElementById("FileUpload").files[i];

                    formData.append("FileUpload", file);
                }
                $.ajax({
                    type: "POST",
                    url: '/Home/Upload',
                    data: formData,
                    dataType: 'json',
                    contentType: false,
                    processData: false,
                    success: function (response) {
                        alert('succes!!');
                    },
                    error: function (error) {
                        alert("errror");
                    }
                });
            });
        });

    </script>
</head>
<body>
    <input type="file" id="FileUpload" multiple />
    <input type="button" id="Upload" value="Upload" />
</body>
</html>  

后台Action的代码

public class HomeController : Controller
{
    [HttpPost]
    public void Upload( )
    {
        for( int i = 0 ; i < Request.Files.Count ; i++ )
        {
            var file = Request.Files[i];

            var fileName = Path.GetFileName( file.FileName );

            var path = Path.Combine( Server.MapPath( "~/Junk/" ) , fileName );
            file.SaveAs( path );    
        }

    }
}

mvc使用ajax上传文件》上有2条评论

发表评论

电子邮件地址不会被公开。 必填项已用*标注