Используя приведенный ниже код, я не могу показать диалоговое окно открытия / сохранения в виде файла:
public void ProcessRequest(HttpContext context)
{
string link = context.Request.QueryString["Link"];
string extension = Path.GetExtension(link);
string fileName = Path.GetFileName(link);
string fullPath =
String.Format("{0}\\{1}",
context.Server.MapPath("~/Content/Uploads/"),
fileName);
if (File.Exists(fullPath))
{
context.Response.ClearContent();
context.Response.ClearHeaders();
context.Response.AddHeader(
"Content-Length",
new FileInfo(fullPath).Length.ToString());
string contentType;
switch (extension)
{
default:
contentType = "application/octet-stream";
break;
}
context.Response.ContentType = contentType;
context.Response.AddHeader(
"Content-Disposition",
String.Format("attachment; filename={0}", fileName));
context.Response.WriteFile(fullPath, true);
context.Response.Flush();
}
}
Я пытался закрыть ответ, оставить ответ открытым, использовать TrasmitFile()
, но яникогда не получайте никакого диалога или какой-либо обратной связи вообще.Я также попытался отладить его, но никаких исключений не выдается.Пробовал в IE 7/8 и Chrome.Любая помощь приветствуется.
Спасибо!
Ниже представлен вывод Fiddler:
HTTP / 1.1 200 OK Cache-Control: private Content-Length: 3813 Content-Тип: application / octet-stream Сервер: Microsoft-IIS / 7.5 Content-Disposition: вложение;filename = b1af9b34-28cc-4479-a056-8c55b41a5ece.txt X-AspNet-версия: 4.0.30319 X-Powered-By: ASP.NET Дата: чт, 23 декабря 2010 21:51:58 GMT
* Home
* Hotels
* Reviews
* Community
* Travel Guide
* Travel Insurance
* Contact us
* FIDDLER: RawDisplay урезан до 128 символов.Щелкните правой кнопкой мыши, чтобы отключить усечение.*