우리는이 같은 응답으로 zip 파일 다운로드 보내는 사용하는 경우 파일 이름을 설정하는 방법이 잘 작동
$this->response->file("/export/stuff.zip", array('downlaod'=>true, 'name'=>"stuff.zip"));
return $this->response;
을,하지만 파일이 이름은 항상 export.zip
입니다. 우리의 name
옵션은 아무런 효과가없는 것 같습니다. 또한 .zip 확장자없이 시도했습니다. 이는 name
옵션이 here으로 표시되기 때문에 혼란 스럽습니다.
무엇이 잘못 되었습니까?
업데이트 : "내보내기"라는 겉보기로 임의의 이름이 컨트롤러 동작의 이름에서 복사되고 있음을 알았습니다. 메소드 이름을 "admin_exportt"로 변경하고 매번 exportt.zip을 얻습니다. 이것은 내가 본 어느 곳에서도 문서화되지 않았습니다.
이름이 소스 코드 (/lib/Cake/Nework/CakeResponse.php:1254)에서 처리되는 곳을 찾았습니다. 원본 파일 이름이나 name
옵션에 지정된 이름이 사용되어야합니다 :
if (is_null($options['name'])) {
$name = $file->name;
} else {
$name = $options['name'];
}