Мне сложно что-то сделать.
Я создаю mailclient, используя asp.net MVC 4.
Я нахожусь в точке, что мне нужно загрузить изображение, связанное с сообщением (НЕ вложением) в браузер клиента.
Теперь у меня есть эта настройка:
Клиентский браузер → Контроллер/сервер → Почтовый сервер
чтобы уточнить: у меня есть запрос клиента, содержащий идентификатор содержимого изображения, правильный почтовый ящик, сообщение и т.д. С помощью этой информации я могу загрузить изображение с почтового сервера и загрузить его клиенту. Теперь идет сложная часть: я хочу сделать это асинхронным. Я хочу иметь возможность загружать кусок размером 512 КБ с почтового сервера, декодировать эту часть и отправлять ее клиенту. Fetch - decode - send. До тех пор, пока браузер не получит все данные изображения.
Я просто не хочу сначала загружать ВСЕ данные сначала на сервер, а затем создавать новый memystream со всеми этими данными и возвращать это как fileresult. Я просто боюсь получить слишком большие файлы в своей памяти и заблокировать другие процессы и т.д.
Я также планирую использовать этот метод для загрузки реальных вложений (которые могут быть 100 МБ). Поэтому мне понадобится этот метод позже.
Теперь я просто не знаю, как этого добиться, потому что у меня есть соединение с почтовым сервером, и у меня есть соединение с клиентом. и я должен передать данные в новый поток или что-то, чтобы это сделать..
Кто-нибудь может помочь мне?
Изменить: уточнить: нет, я не могу ссылаться на файл на почтовом сервере. Я должен загрузить файл на сервер через сокеты.
Edit2: может ли http chuncked быть решением? Если да, не могли бы вы дать мне небольшой пример?