2009-12-16 34 views
11

Đây là vấn đề của tôi. Tôi tải xml từ cơ sở dữ liệu của tôi và đẩy nó vào máy khách bằng mã. Nhưng vấn đề là trình duyệt sẽ tự động mở xml thay vì cung cấp nó dưới dạng tải xuống.Làm cách nào để bạn có thể buộc trình duyệt tải xuống tệp xml?

Có cách nào để buộc trình duyệt của bạn tải xuống tệp đó và không hiển thị tệp đó không?

Tôi đang làm việc trong môi trường C#, Asp.net (với IIS7).

Thx

Trả lời

20
protected void DisplayDownloadDialog() 
{ 
    Response.Clear(); 
    Response.AddHeader(
     "content-disposition", string.Format("attachment; filename={0}", "filename.xml")); 

    Response.ContentType = "application/octet-stream"; 

    Response.WriteFile("FilePath"); 
    Response.End(); 
} 

Điều này sẽ buộc phải tải về các tập tin và không hiển thị trong trình duyệt.

Thao tác này sẽ hoạt động đối với mọi loại tệp mà không cần chỉ định bất kỳ loại MIME đặc biệt nào.

+0

thx, điều này thực hiện thủ thuật tốt. tuyệt vời – user29964

+0

Tôi có một vấn đề mà phương pháp không làm việc cho lần đầu tiên tải xuống .. nhưng bắt đầu từ lần thứ 2 trở đi, nó hoạt động tốt .. lần đầu tiên, thay vì 'filename' nó hiển thị tên trang' test1' .. bất kỳ ý tưởng tại sao ?? – william

+0

bạn có thể đăng một số mã ở đây không? –

1

Thêm nội dung: phần đính kèm nội dung.

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