.net C# 文件下载(所有类型)

后台接收方法下载
[HttpGet]
public async Task export(string url, string name)
{
try
{
string path = System.Web.HttpContext.Current.Server.MapPath(url);
if (!string.IsNullOrWhiteSpace(path) && File.Exists(path))
{

                string filename = name;
                var stream = new FileStream(path, FileMode.Open);
                HttpResponseMessage resp = new HttpResponseMessage(HttpStatusCode.OK)
                {
                    Content = new StreamContent(stream)
                };
                resp.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment")
                {
                    FileName = filename
                };
                resp.Content.Headers.ContentType = new MediaTypeHeaderValue("application/octet-stream");
                resp.Content.Headers.ContentLength = stream.Length;

                return await Task.FromResult(resp);
            }

        }
        catch (Exception ex)
        {
            
        }
        return new HttpResponseMessage(HttpStatusCode.NoContent);
    }

前台调用1
this.download2(“http://localhost:1462/api/test/export”, “url=” + item.resourceUrl + “&name=” + item.name, ‘get’);
download2 : function (url, data, method) {
if (url && data) {
data = typeof data == ‘string’ ? data : jQuery.param(data);
var inputs = ‘’;
$.each(data.split(’&’), function () {
var pair = this.split(’=’);
inputs += ‘’;
});
$(’’ + inputs + ‘’).appendTo(‘body’).submit().remove();
};
},
前台调用2

            $('body').append("<iframe id=\"downloadcsv\"  ></iframe>");
           
            $('#downloadcsv').attr('src', "http://localhost:1462/api/test/export?url=" + item.resourceUrl + "&name=" + item.name);
发布了55 篇原创文章 · 获赞 2 · 访问量 6万+

猜你喜欢

转载自blog.csdn.net/wqs15192095633/article/details/96359774