2008-10-03 44 views
6

Tôi có một trang web lấy thông tin từ cơ sở dữ liệu, chuyển đổi nó sang định dạng .csv và ghi tệp đó vào HTTPResponse.Thay đổi tên tệp đã gửi cho khách hàng?

string csv = GetCSV(); 
Response.Clear(); 
Response.ContentType = "text/csv"; 
Response.Write(csv); 

Điều này làm việc tốt và tệp được gửi cho khách hàng mà không gặp vấn đề gì. Tuy nhiên, khi tệp được gửi tới máy khách, tên của trang hiện tại được sử dụng, thay vì tên thân thiện hơn (như "data.csv").

alt text

Câu hỏi của tôi là, làm thế nào tôi có thể thay đổi tên của tập tin được ghi vào dòng đầu ra mà không cần viết các tập tin vào đĩa và chuyển hướng khách hàng để url của tập tin?

EDIT: Cảm ơn các bạn đã trả lời. Tôi nhận được 4 câu trả lời tương tự, vì vậy tôi chỉ chọn câu trả lời đầu tiên làm câu trả lời.

Trả lời

11

Tôi tin rằng điều này sẽ phù hợp với bạn.

Response.AddHeader("content-disposition", "attachment; filename=NewFileName.csv"); 
1

Thêm tiêu đề "Nội dung bố trí" với giá trị "tệp đính kèm; filename = filename.csv".

1
Response.AddHeader("content-disposition", "attachment; filename=File.doc") 
2

Bạn chỉ cần thiết lập các Content-Disposition tiêu đề

Content-Disposition: attachment; filename=data.csv 

bài viết của Microsoft này có một số thông tin tốt

How To Raise a "File Download" Dialog Box for a Known MIME Type

+0

Các ví dụ là không hợp lệ (không nên có dấu chấm phẩy olon) –

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