Khi sử dụng một tiêu chuẩn <input type="file" />
trên một trang web MVC3, bạn có thể nhận được các tập tin trong phương pháp hành động của bạn bằng cách tạo ra một tham số đầu vào của loại HttpPostedFile
và thiết lập các hình thức để enctype="multipart/form-data"
Asp.Net tập tin tiên tiến tải lên
Một trong những vấn đề của phương pháp này là yêu cầu không hoàn thành và không được chuyển giao cho phương thức hành động của bạn cho đến khi toàn bộ nội dung của tệp đã được tải lên.
Tôi muốn thực hiện một số việc với tệp đó khi tệp đang được tải lên máy chủ. Về cơ bản tôi muốn nhận không đồng bộ dữ liệu khi nó đi vào và sau đó lập trình xử lý byte dữ liệu theo byte.
Để thực hiện việc trên, tôi tưởng tượng bạn sẽ cần phải xử lý phần này của yêu cầu trong một HttpModule hoặc HttpHandler tùy chỉnh có lẽ. Tôi quen thuộc với cách những thứ đó hoạt động, nhưng tôi không quen thuộc với phương thức nhận dữ liệu tải lên tệp một cách không đồng bộ như nó có.
Tôi biết điều này là có thể bởi vì tôi đã làm việc với các thành phần của bên thứ 3 trong quá khứ thực hiện việc này (thông thường để họ có thể báo cáo tiến độ tải lên hoặc lưu dữ liệu vào đĩa để tránh giới hạn bộ nhớ iis/asp.net). Thật không may tất cả các thành phần tôi đã sử dụng là nguồn đóng nên tôi không thể nhìn trộm bên trong và xem họ đang làm gì.
Tôi không tìm mã, nhưng ai đó có thể khiến tôi chỉ đúng hướng ở đây?
Bạn đã xem xét yêu cầu chuyển sang Dịch vụ WCF chưa? – Lloyd
Hãy xem [bài đăng của Jon Galloway] (http://weblogs.asp.net/jgalloway/archive/2008/01/08/large-file-uploads-in-asp-net.aspx), nó có thể chỉ cho bạn đi đúng hướng (cụ thể là đề cập đến [NeatUpload] (http://neatupload.codeplex.com/) có vẻ đầy hứa hẹn). – staterium