이미지 URL 경로에서 압축 된 이미지를 다운로드해야합니다. 이미지 다운로드가 명확합니다. 그러나 문제는 프롬프트 윈도우가 나타나지 않는다는 것입니다. 즉 FileStreamResult는 아무 것도 반환하지 않습니다.왜 FileStreamResult 결과가 없습니까?
Asp.NET MVC 컨트롤러 포스트 방법 :
내 문제가 반환 FileStreamResult가 작동하지 않는됩니다[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
}
}
- 왜? 나는 너무 많이 노력했지만 succided하지 않았다. string [] name의 값은 Ajax \ JqueryUI post 메서드를 사용하여 얻을 수 있습니다. 실제로 값은 checkBox의 값입니다.
ajax가 비동기이기 때문에 다운로드 할 수 없으며 사용자가 다운로드를 허용해야합니다. 따라서 현재 창을 리디렉션하지 않고 요청을 수행하려면 새 창을 열어야합니다. –
그러면 어떻게 할 수 있습니까? – user2536026
방금 말씀 드린대로, 다운로드 할 파일의 URL로 새 창을 열어야합니다. –