2012-08-23 38 views
8

Tôi đang yêu cầu trang .ashx từ tập lệnh phía máy khách trang chính (Jquery) có mã để tải xuống tệp PDF. Khi tôi gỡ lỗi, tôi có thể thấy việc thực thi mã "tải xuống tệp" nhưng tệp không tải xuống.tải xuống tệp bằng cách gọi .ashx trang

$.ajax({ 
      type: "POST", 
      url: "FileDownload.ashx", 
      dataType: "html", 
      success: function (data) { } 
     } 
     ); 


    public class FileDownload : IHttpHandler 
{ 

    public void ProcessRequest(HttpContext context) 
    { 
     //context.Response.ContentType = "text/plain"; 
     //context.Response.Write("Hello World"); 

     string fileName = "BUSProjectCard.pdf"; 
     string filePath = context.Server.MapPath("~/Print/"); 
     context.Response.Clear(); 
     context.Response.ContentType = "application/pdf"; 
     context.Response.AddHeader("Content-Disposition", "attachment; filename=" + fileName); 
     context.Response.TransmitFile(filePath + fileName); 
     context.Response.End(); 
    } 
+1

bài đăng này có thể hữu ích? http://stackoverflow.com/questions/1999607/download-and-open-pdf-file-using-ajax –

Trả lời

11

tập tin của bạn được tải về, nhưng bạn sẽ có được nó trên javascript, trên data tham số của cuộc gọi của bạn bởi vì bạn gọi nó với Ajax.

Bạn sử dụng một bộ xử lý - vì vậy Ajax không cần thiết ở đây, và điều dễ dàng nhất để làm bằng javascript là:

window.location = "FileDownload.ashx?parametres=22"; 

hoặc với một liên kết đơn giản như

<a target="_blank" href="FileDownload.ashx?parametres=22" >download...</a> 

Ah, và gửi các thông số qua url, bạn không thể đăng chúng theo cách đó.

Bạn cũng có thể đọc: What is the best way to download file from server

+0

Điều này rất hữu ích, bạn đúng với câu trả lời. Sau vài phút cố gắng tải xuống một tệp trong .ashx với cuộc gọi json trong ứng dụng khách, tôi không nhận được tệp theo bất kỳ cách nào. – amelian

+0

@Aristos hoạt động hoàn hảo. Nhưng tôi cần hiển thị thông báo nếu có điều gì đó sai ở phía máy chủ .. Tôi sẽ làm như thế nào? Thư "Đã xảy ra sự cố hoặc không tìm thấy tệp" – Prabu

+0

@Prabu ở phía máy chủ, bạn chỉ có thể đăng nhập lỗi - tương đối dễ dàng trong trình xử lý. Tìm hoặc viết một lớp đăng nhập ... – Aristos

Các vấn đề liên quan