Tôi muốn khách hàng tải xuống tệp được lưu trữ trên db của tôi khi nhấp vào nút. Tôi gửi yêu cầu ajax này và mang nó từ phía máy chủ.Yêu cầu tải xuống tệp Extjs Ajax C# MVC
ExtJS:
downloadFile: function (a, b, c) {
var feed_id =this.getMyfeedwindow().down('form').getComponent('FeedId').text;
Ext.Ajax.request({
url: '/Feed/Download',
method: 'GET',
params: {
fileID: feed_id, //this.form.getComponent('file').value,
},
failure: function (response) {
alert('failed !');
},
success: function (response) {
alert('success!');
},
});
},
sau đó đáp ứng yêu cầu với khối mã này.
C#:
public void Download(string fileID){
Response.ContentType = "application/force-download";
Response.AddHeader("Content-Disposition", "attachment; Filename=\"Logo1.jpg\"");
Response.BinaryWrite(data);
Response.End();
}
Khi tôi kiểm tra mạng với con đom đóm, có vẻ như yêu cầu của tôi trở lại thành công với các thông số này.
Cache-Control private
Content-Disposition attachment; filename="Logo1.jpg"
Content-Type application/force-download
Date Wed, 09 Jan 2013 12:51:54 GMT
Server Microsoft-IIS/8.0
Transfer-Encoding chunked
X-AspNet-Version 4.0.30319
X-AspNetMvc-Version 4.0
X-Powered-By ASP.NET
X-SourceFiles =?UTF-8?B?RTpcVXRrdUNhblxQcm9qZWN0c1xURlNcQlRPTVxCVE9NXEZlZWRcRG93bmxvYWQ=?=
Mặc dù nó trả về thành công, quá trình tải xuống không bắt đầu. Tôi đã đọc rất nhiều câu hỏi và bài viết nhưng hầu hết các câu trả lời đều cho biết thêm tiêu đề bắt buộc tải xuống sẽ giải quyết được vấn đề. Tôi nhớ điểm nào? Cảm ơn.
Bạn đang thực sự yêu cầu điều gì ở đây? Nó không rõ ràng. – Liam
Tải xuống không bắt đầu ở phía máy chủ? Tôi không thể bắt đầu. Trường phản hồi trong Firebug dường như đã được lấp đầy một số dữ liệu nhưng không có tải xuống. – tkcn