2010-08-13 28 views
5

Tôi đang làm việc trên ứng dụng ASP.NET MVC có các nút có máy chủ trả về tệp rdp, được tạo bởi doanh nghiệp của tôi lớp.Làm thế nào tôi có thể tạo, viết và sau đó trả về một tập tin trong C# mà không lưu nó vào đĩa

Điều tôi muốn là có thể có máy chủ tạo tệp rdp này, sau đó phân phát, mà không cần lưu trữ trên đĩa.

Cách tốt nhất để thực hiện việc này là gì?

Cảm ơn.

+0

Thứ tự là gì? –

Trả lời

7

Bạn có thể tạo ra các tập tin trong một MemoryStream và sau đó phục vụ nó bằng cách sử dụng Response.Write
Cũng đừng quên để thiết lập ContentType để "application/rdp"

Edit: Như Danny Chen đề nghị bạn có thể sử dụng FileStreamResult trong lớp điều khiển

Stream stream = new MemoryStream(); 
//Fill the stream here 
return new FileStreamResult(stream,"application/rdp") 
+0

Có. MemoryStreams sẽ là một lựa chọn lý tưởng :) –

+0

MemoryStream là OK nhưng không có Response.Write bởi vì anh ta đang sử dụng ASP.NET MVC. –

+0

Response.Write hoạt động trong MVC –

1

Tôi sẽ sử dụng đối tượng MemoryStream để ghi dữ liệu vào bộ nhớ đệm.

Nhưng tất cả phụ thuộc vào lớp doanh nghiệp của bạn, nếu đủ khả thi để xuất dữ liệu thành luồng tùy ý.

Hoặc, nếu trên máy giống Unix, hãy gắn một thư mục bằng ramfs và sử dụng nó để lưu trữ tạm thời, do đó tệp được lưu trữ trong bộ nhớ. Nhưng tôi đoán cơ hội nhỏ bạn đang sử dụng ASP.NET với Linux/BSD.

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