0

我想从 api apicontroller 下载客户端文件:

 public HttpResponseMessage PostOfficeSupplies()
 {
    HttpResponseMessage result = new HttpResponseMessage(HttpStatusCode.OK);
    result.Content = new StreamContent(File.OpenRead("D:\\Others\\Images\\file.png"));
    result.Content.Headers.ContentType = new MediaTypeHeaderValue     ("application/octet-stream");

    result.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment");
    result.Content.Headers.ContentDisposition.FileName = "file.png";
    return result;    
}

使用 jquery 为我弹出下载的客户端代码(视图)怎么样?

我的客户端:

                 $.ajax(
                    {
                        url: 'api/MyAPI'
                    , type: "post"
                    , contentType: "application/octet-stream"
                    , data: ''
                    , success:
                    function (retData) {
                        $("body").append("<iframe src='" + retData + "' style='display: block;' ></iframe>");
                                        $("#sp123").text(retData);}

                    });       

我只想弹出下载

4

1 回答 1

0

我不确定您是否能够使用 ajax 调用显示下载弹出窗口,但您可以通过提交表单来显示下载确认窗口

<form id="downloadForm" method="post" action="~/api/MyAPI">
 <!--use this if you want to pass any values !-->
 <!--  <input type="hidden" name="Param1" id="Param1HidenValue" /> !-->
</form>

并从JavaScript这样称呼它

$('#downloadForm').submit();
于 2012-11-29T07:49:53.747 回答