Tôi có kinh nghiệm về phần mềm phụ trợ C# và ASP.Net MVC. Bây giờ tôi đang thực hiện nỗ lực đầu tiên của tôi trên Angular 2. Phải mất thời gian nhưng tôi thích nhất của nó. Bây giờ tôi đang mắc kẹt trên một tập tin tải về đơn giản.Tải xuống tệp từ MVC 5 tới Angular 2
Tôi đã đọc tất cả các ví dụ mà tôi tìm thấy ở đây trên Stackoverflow, nhưng tôi vẫn không nhận được ví dụ của tôi để làm việc.
Về phía máy chủ tôi có C mã này #:
public ActionResult DownloadPicture(long id)
{
var bytes = System.IO.File.ReadAllBytes("images\dummy.jpg");
return GetAttachement(bytes, "DummyFile.jpg");
}
private ActionResult GetAttachement(byte[] bytes, string fileName)
{
var contentType = MimeMapping.GetMimeMapping(fileName);
var contentDisposition = new System.Net.Mime.ContentDisposition
{
FileName = fileName,
Inline = true
};
Response.AppendHeader("Content-Disposition", contentDisposition.ToString());
return File(bytes, contentType);
}
Về phía khách hàng tôi có mã nguyên cảo này:
public pictureDownload(id: number): void {
let options = new RequestOptions({ search: new URLSearchParams("id=" + id) });
this.http.get(this.urlPictureDownload, options).subscribe((data: any) => {
// var blob = new Blob([data._body], { type: "image/jpeg" });
// var url = window.URL.createObjectURL(blob);
// window.open(url);
});
}
Các yêu cầu được sắp vào phía máy chủ. Mảng được tải xuống. Tôi đoán vấn đề của tôi nằm ở phía khách hàng. Ai có thể giúp tôi không?
Thú vị - Tôi chưa [thử điều này] (https: //templth.wordpress.com/2014/11/21/handle-downloads-with-angular /) với [FileSaver.js] (https://github.com/eligrey/FileSaver.js). Lưu ý 'mảngbuffer'. Hth ... – EdSF
Có lý do nào khiến bạn không thể sử dụng liên kết cũ cho tệp không? Đó có lẽ là dễ nhất. – Casey
Tôi biết, tôi thực sự muốn điều đó nhưng các tập tin không nằm trên đĩa. Chúng được lưu trữ trong bộ lưu trữ phụ trợ nên tôi thực sự giữ chúng dưới dạng luồng. –