Мне нужно скачать zipped изображение из URL-адреса URL-адреса изображения. Загрузка изображения понятна. Но проблема в том, что окно подсказки не появляется, то есть FileStreamResult ничего не возвращает.Почему FileStreamResult ничего не значит?
Asp.NET MVC контроллер пост метод:
[AcceptVerbs(HttpVerbs.Post)]
public FileResult Extract(string[] name)
{
using (ZipFile zip = new ZipFile()) //Zip section
{
foreach (var item in name)
{
string exts = Path.GetExtension(item);
string strRealname = Path.GetFileName(item);
using (WebClient client = new WebClient()) // download Section
{
client.DownloadFile(item, Server.MapPath("~/upload/") + strRealname + exts);
}
string filePath = Server.MapPath("~/upload/" + strRealname + exts);
zip.AddFile(filePath, Path.GetFileName(filePath));
}
string dest = Server.MapPath("~/Album.zip");
zip.Save(dest);
byte[] data = System.IO.File.ReadAllBytes(dest);
var strm = new FileStream(dest, FileMode.Open);
//return new FileStreamResult(strm, "application/zip")
return new FileContentResult(data, "application/zip");//Not showing prompt window
}
}
Моя проблема заключается в том, что возвращение FileStreamResult не работает - почему? Я пробовал слишком много, но не преуспел. Значения имени string [] получаются с использованием метода почты Ajax \ JqueryUI. Фактически значения - это значение checkBox, которое проверяется.
Вы не можете загрузить файл через ajax, так как ajax является асинхронным .. и пользователь должен разрешить загрузку. Таким образом, вы должны открыть новое окно, если хотите, чтобы запрос произошел без перенаправления текущего окна. –
Тогда как я могу это сделать? – user2536026
Я только что рассказал вам, как вам нужно открыть новое окно с URL-адресом загружаемого файла. –