Хорошо, у меня есть страница, которая получает файл в виде байта [] от веб-службы, который я затем предоставляю пользователю для сохранения этого файла в диалоговом окне «Сохранить / Отменить». Этот файл может быть в формате xml или cvs. Когда файл загружен, файл является неполным, например, Вот что должен иметь файл:
USD, EUR, евро, 1.2,1.1,11 / 15 / 2009,15: 23: 27
USD, AUD, австралийский, 1.25,1.15,11 / 15 / 2009,15: 23: 27
но при сохранении из браузера он имеет только ::
USD, EUR, евро, 1.2,1.1,11 / 15 / 2009,15: 23: 27
USD, AUD, австралийский, 1.25,1.
вот мой код:
Response.Buffer = true;
Response.AddHeader("Content-Disposition", "attachment;filename=" + fileName);
Response.AddHeader("Content-Length", MyFile.Length.ToString());
FileInfo file = new FileInfo(fileName);
Response.ContentType = Utility.ReturnExtension(file.Extension.ToLower());
Response.BinaryWrite(MyFile);
Response.Flush();
Response.Close();
Response.End();
Я уже убедился, что байт [], который я получаю от веб-службы, в порядке, написав файл
на моей машине, используя следующий код:
StreamWriter writer = null;
string blah = System.Text.ASCIIEncoding.ASCII.GetString(MyFile);
writer = File.CreateText(Server.MapPath(filePath+fileName));
writer.Write(blah);
writer.Close();
writer.Dispose();
Если я удаляю Close () и End (), тогда весь файл отображается с некоторым HTML-кодом со страницы.
Я получаю полный файл (только в формате XML), если сначала создаю / записываю файл на локальном компьютере, а затем выполняю Response.TransmitFile (file).
Я не уверен, что я делаю неправильно. Может быть, это просто что-то очень простое. Любая помощь будет принята с благодарностью