문제

나는 dotnetzip을 사용하고 있으며 Mac에 대한 허가 문제가 있음을 알았습니다. 이것은 내가 콘텐츠 처분을 사용할 때만 발생하는 것 같습니다.

즉, 디스크에 저장하면

using (ZipFile zip = new ZipFile(@"C:\zip\temp.zip"))
{
   // this works fine
}

그러나 MAC에서 컨텐츠 처분을 사용하면 사용자 권한이 거부됩니다 (모든 그룹 그룹이 확인되지 않음)

Response.ContentType = "application/zip";
Response.AddHeader("content-disposition", "filename=" + filename);

using (ZipFile zip = new ZipFile(Response.OutputStream))
{
    // 
}
도움이 되었습니까?

해결책

Application-Type을 "application/octet-stream"으로 변경할 수 있습니다. 믿거 나 말거나 이전에 고정 된 문제가 있습니다. 어쨌든 샷의 가치가 있습니다.

가장 큰 질문은 파일이 Mac 측에서 요청되는 방법입니다. 파일을 제공하는 Windows 웹 서버 인 경우 Windows는 클라이언트 측에서 권한을 설정할 수 없습니다. 웹 브라우저 (Safari/Firefox)라면 기본 설정에서 실행 중일 것입니다. 따라서 Mac에서 파일을 요청하는 것이 무엇인지 아는 것은 정답을 얻는 데 도움이 될 수 있습니다.

다른 팁

이것에 대한 몇 가지 이유가있을 수 있지만 Mac의 프레임 워크에 버그가 있다는 것입니다. Mac에 있으면 Mono를 사용하고 있다고 가정하므로 Mono Group에 문의하여 그들이 무엇을 말해야하는지 확인하십시오. 또한 그들은 상당히 좋은 것을 가지고 있습니다 법정 그들이 무엇을 말해야하는지보십시오.

마지막으로 "Content-Disposition"을 사용하여 오류가 발생하는 경우 "Content-Disposition"을 사용하지 않고 작동 방식을 사용하지 마십시오.

Dotnetzip과 관련이 있는지 모르겠지만, 나중에 라이브러리의 버전이 있습니다 -V1.7. 그것은 AES 암호화, Zip64, 다른 많은 것들을 수행합니다. v1.8 버전에는 새로운 멋진 Seelctor 기능과 GzipStream을 대체 할 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top