要求用户打开或下载文件

时间:2017-08-27 15:54:46

标签: javascript c# ajax asp.net-mvc-4 download

我有一个C#方法导出数据库表和一个开始下载的JS函数。 JS是这样的:

function Export()
{
    $.ajax({
        cache: false,
        type: "POST",
        url: '@Url.Action("exportDatabaseTable", "MyController")',
        data:
        {
            'type': "xls" 
        },
        dataType: "text",
        beforeSend: function () //Display a waiting message
        {
            $('#wait').show();
        },
        success: function (result) //Result is "Message|FilePath"
        {
            var res = result.split('|');
            if(res[0]!="Nothing found")
                window.location = "DownloadDatabaseTable?fileName=" + res[1];
            alert(res[0]);
        },
        error: function ()
        {
            alert("Export failed");
        },
        complete: function () //Hide the waiting message
        {
            $('#wait').hide();
        }
    });
}

虽然在成功函数中调用的C#是这样的:

[HttpGet]
public ActionResult DownloadDatabaseTable(string fileName)
{
    System.IO.FileInfo file = new System.IO.FileInfo(fileName);
    byte[] fileBytes = System.IO.File.ReadAllBytes(fileName);
    return File(fileBytes, System.Net.Mime.MediaTypeNames.Application.Octet, System.IO.Path.GetFileName(fileName));
}

一切正常,但下载会自动开始。有没有办法显示下载窗口,让用户选择下载(以及在何处下载)或打开文件?

0 个答案:

没有答案