后台接收方法下载
[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);