У меня есть приложение, которое создает аудиофайл. Мне нужно предоставить ссылку, которая вызывает диалог сохранения, когда вы звоните пользователям, чтобы сохранить файл.Разрешение пользователям скачивать файлы - ASP.NET
У меня есть кнопка кнопки загрузки в качестве кнопки ссылки. Из моих исследований представляется, что, чтобы быть в состоянии заставить воспитывающий сохранить диалог, мне нужно добавить следующий код:
Response.ContentType = "audio/wav";
Response.AppendHeader("Content-Disposition", "attachment; filename=blah.wav");
Response.WriteFile(@"blah.wav");
Response.End();
Когда я добавить этот обработчик событий кнопки ссылки, я получаю ошибку:
"Line: 4723
Error: Sys.WebForms.PageRequestManagerParserErrorException: The message received from the server could not be parsed. Common causes for this error are when the response is modified by calls to Response.Write(), response filters, HttpModules, or server trace is enabled.
Details: Error parsing near 'RIFF?WAVEfmt '."
Итак, я решил попробовать, создав промежуточную страницу, которая облегчает загрузку. В обработчике загрузки linkbutton я добавил Respose.Redirect
на эту промежуточную страницу и на странице PageLoad страницы, я добавил фрагмент кода выше. При настройке таким образом IE блокирует загрузку, говоря:
"To help protect your security, Internet Explorer blocked his site from downloading files to your computer. Click here for options"
Когда я нажимаю и выбираю «Загрузить файл», я не получаю диалог «Сохранить».
Мои вопросы: 1. Могу ли я удалить промежуточную страницу? 2. Если я не могу, как у меня нет запроса IE, пользователь должен действовать?
Что такое линия на линии * Линия: 4723 *? –
Это ошибка ajax (у меня есть эта страница в UpdatePanel) – Nick
Я думаю, именно поэтому проблема возникает, попробуйте переместить кнопку/обработчик за панель и она будет работать. Нет необходимости в ajax, так как браузер не покинет страницу в любом случае из-за вложения. –