0

私の見解では、ローカルフォルダからファイルをダウンロードする必要があります。

だから私は次のようなajax関数を書きました

  <img  id="trailer" src="../../Images/icon.gif" alt="exists" title="Click on image to Download file"/>
<script type="text/javascript">
$(document).ready(function () {
    $('#trailer').click(function () {
        var cid = $('#CourseID').val();
        var fnm = $('#FileName').val();
        var url2 = "/Coursework/DownloadPrtfTrailor" + '?FileName=' + fnm + '&CourseID=' + cid;
        $.ajax({
            url: url2,
            cache: false,
            type: 'POST'
        });
    });
});

 </script>

そしてコントローラーで私は次のコードを書きました:

 [HttpPost]
    public ActionResult DownloadPrtfTrailor()
    {
        string fileName = string.Empty;
        string courseID = string.Empty;
        string filepath = string.Empty; 

        if (Request.QueryString != null && Request.QueryString.Count > 0)
        {
            if (!string.IsNullOrEmpty(Request.QueryString["FileName"]))
               fileName = Request.QueryString["FileName"];
            if (!string.IsNullOrEmpty(Request.QueryString["CourseID"]))
                courseID = Request.QueryString["CourseID"];
        }
        try
        {
            var fs = System.IO.File.OpenRead(Server.MapPath("/ePortfolio/" + courseID + "/" + "Icons" + "/" + fileName));
            string extn = "application/" + Path.GetExtension(fileName);
            return File(fs, extn, fileName);
        }
        catch
        {
            throw new HttpException(404, "Couldn't find " + fileName);
        }

    }

これを通して私はファイルをダウンロードすることができません

しかし、次のようなアクションリンクを介して関数を呼び出すと

@Html.ActionLink("Download", "DownloadPrtfTrailor",
             new {CourseID=item.prtfMaster.CourseID, fileName1 = item.prtfMaster.IconFileName})

ファイルを正常にダウンロードできます画像をクリックしてファイルをダウンロードするにはどうすればよいですか

助けてください

4

1 に答える 1

0

window.open("url to file") を使用すると、ファイルがダウンロードされます。URL は、コントローラーのアクション メソッドにすることができます。

于 2012-06-08T12:14:26.133 に答える