Я пытаюсь удаленно загрузить файл CSV, позвонив в службу WCF с помощью jQuery. Поскольку файл на самом деле не находится на сервере, я пытался вернуть его в качестве потока. Поскольку я использую заголовок Content-Disposition < /code>, браузер клиента должен автоматически начать загрузку файла с данным именем файла.[OperationContract()]
public Stream GetCsvFile(int id)
{
string s = ...;
WebOperationContext.Current.OutgoingResponse.ContentType = "text/csv";
WebOperationContext.Current.OutgoingResponse.Headers["Content-Disposition"] = "attachment; filename=\"file1.csv\"";
return GenerateStreamFromString(s);
}
public Stream GenerateStreamFromString(string s)
{
MemoryStream stream = new MemoryStream();
StreamWriter writer = new StreamWriter(stream);
writer.Write(s);
writer.Flush();
stream.Position = 0;
return stream;
}
< /code>
my jquery ajax запрос: < /p>
$.ajax({
type: "POST",
url: serviceUrl,
cache: false,
data: data,
dataType: "text",
contentType: "application/json; charset=utf-8",
success: function() {
// TODO...
}
});
< /code>
Этот запрос завершается успешно! И я вижу правильные данные CSV в ответе. Тем не менее, он не инициирует фактическое действие «Загрузка файла» в браузере (тестирование на Chrome на данный момент) и «file1.csv» не сохраняется на диск клиента.Response.Clear()
Response.ContentType = "text/csv"
Response.AddHeader("content-disposition", "attachment; filename="file1.csv")
Response.Write(s)
Response.End()
< /code>
Это автоматически инициирует загрузку файла "file1.csv". Диалог "Сохранить как" Сохранить как ", файл просто немедленно загрузился. Это было довольно круто. < /P>
Так почему же это не работает, когда я пытаюсь позвонить в службу WCF с jQuery? < /P>
Подробнее здесь: https://stackoverflow.com/questions/150 ... ice-stream
Как загрузить файл из потока службы WCF? ⇐ Jquery
Программирование на jquery
1756083795
Anonymous
Я пытаюсь удаленно загрузить файл CSV, позвонив в службу WCF с помощью jQuery. Поскольку файл на самом деле не находится на сервере, я пытался вернуть его в качестве потока. Поскольку я использую заголовок Content-Disposition < /code>, браузер клиента должен автоматически начать загрузку файла с данным именем файла.[OperationContract()]
public Stream GetCsvFile(int id)
{
string s = ...;
WebOperationContext.Current.OutgoingResponse.ContentType = "text/csv";
WebOperationContext.Current.OutgoingResponse.Headers["Content-Disposition"] = "attachment; filename=\"file1.csv\"";
return GenerateStreamFromString(s);
}
public Stream GenerateStreamFromString(string s)
{
MemoryStream stream = new MemoryStream();
StreamWriter writer = new StreamWriter(stream);
writer.Write(s);
writer.Flush();
stream.Position = 0;
return stream;
}
< /code>
my jquery ajax запрос: < /p>
$.ajax({
type: "POST",
url: serviceUrl,
cache: false,
data: data,
dataType: "text",
contentType: "application/json; charset=utf-8",
success: function() {
// TODO...
}
});
< /code>
Этот запрос завершается успешно! И я вижу правильные данные CSV в ответе. Тем не менее, он не инициирует фактическое действие «Загрузка файла» в браузере (тестирование на Chrome на данный момент) и «file1.csv» не сохраняется на диск клиента.Response.Clear()
Response.ContentType = "text/csv"
Response.AddHeader("content-disposition", "attachment; filename="file1.csv")
Response.Write(s)
Response.End()
< /code>
Это автоматически инициирует загрузку файла "file1.csv". Диалог "Сохранить как" Сохранить как ", файл просто немедленно загрузился. Это было довольно круто. < /P>
Так почему же это не работает, когда я пытаюсь позвонить в службу WCF с jQuery? < /P>
Подробнее здесь: [url]https://stackoverflow.com/questions/15092984/how-to-download-a-file-from-a-wcf-service-stream[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия