Ну, страницу можно разделить на две половины: одну с элементами управления загрузкой файлов, а другую, которая опрашивает каждые 3-4 секунды через AJAX, чтобы увидеть, есть ли новые файлы.
Сторона "A" имеет стандартный элемент управления загрузкой файлов и использует стандартный способ сохранения загруженных файлов в .NET (см. FileUpload.PostedFile.SaveAs (путь), простые вещи).После завершения загрузки файла обновите эту страницу.
Сторона "B" - это div, который получает свое содержимое из вызова AJAX, XML, JSON или просто старого текста.Создайте страницу AJAX с именем "link.aspx", которая возвращает содержимое в любом формате.
Для ссылок, если вы хотите открыть окно «загрузки», либо файлы должны быть того типа, который обычно не отображается в браузере, либо вам нужно использовать другую страницу aspx для показаиз файла и принудительно диалоговое окно, чтобы сохранить или открыть.
Эта страница aspx будет называться что-то вроде "file.aspx", и вы можете передать параметр строки запроса ("id" или что-то), чтобы сказать ему, чтофайл, который вы хотите.Ваш код этой страницы определит, какой файл вам нужен из этого параметра строки запроса, а затем выдаст файл:
Response.AddHeader("Content-Disposition", "attachment; filename=" + file.fileName);
Response.AddHeader("Content-Length", file.Length.ToString());
Response.ContentType = "image/jpeg"; // you gotta figure out the content type of the file here though. This is just the one for JPEGS.
byte[] buffer = new byte[file.Length];
dl.Read(buffer, 0, (int)file.Length);
Response.BinaryWrite(buffer);
Response.End();