![](/img/trans.png)
[英]Using window.open() to download file, how to not remove the # in URL?
[英]How to download a file using window.open()
我正在尝试使用window.open(path,'_ blank','download')从服务器下载文件,但它只是在新选项卡中将其打开。 如何下载文件? 是的,我确实检查过其他类似的问题,但它们均无作用。 我也试过了,但是没有用。
$scope.docView = function () {
Method.getbyId("api call",docId).then(function(response) {
}).catch(function (data) {
console.log("Unknown Error");
});
}
}
/*this.getbyId = function (path, id) {
return $http.get(appSetting.apiBaseUrl + path + "/" + id);
};
*/
[Route("api call")]
[HttpGet]
public IHttpActionResult ViewDocument (Guid? docId)
{
/*background work*/
response.Message = filePath;
var bytes=System.IO.File.ReadAllBytes(prevPath);
HttpContext.Current.Response.Buffer = true;
HttpContext.Current.Response.Clear();
HttpContext.Current.Response.ClearHeaders();
HttpContext.Current.Response.ContentType = value.Format;
string Name = value.DocumentName;
HttpContext.Current.Response.AddHeader("content-disposition", "attachment; filename=" + Name);
HttpContext.Current.Response.BinaryWrite(bytes);
}
}
catch (Exception ex)
{
Utils.Write(ex);
}
return Ok(response);
}
要强制浏览器下载文件(而不是在另一个选项卡或当前选项卡中显示文件),需要将特殊的标头与文件正文一起发送。
仅当您可以在服务器端修改某些内容时,才有可能。
您应该发送以下标头:
Content-Disposition: attachment; filename"myfile.txt"
Content-Type: application/octet-stream; name="myfile.txt"
Content-Transfer-Encoding: binary
当然,如果您知道文件的内容类型( application/pdf
, image/jpeg
等),请用文件的内容类型替换application/octet-stream
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.