2014-03-13 1 views
0

CakePHP 2.4 : 프로젝트 목록이있는 인덱스 뷰가 있습니다. 이 페이지의 버튼을 사용하면 나열된 프로젝트에 대한 정보가있는 파일을 다운로드하기 위해 'ProjectsController.php'에서 'exportxml'작업을 호출 할 수 있습니다. 다운로드가 성공적으로 완료되면 모든 프로젝트의 상태를 변경해야합니다. 그러나 나는 이것을하는 방법을 찾을 수 없습니다.성공적인 파일 다운로드 후 CakePHP 새로 고침 페이지

파일 저장 후 요청에 대한 응답으로 다음 명령이 더 이상 실행되지 않습니다.

먼저 레이아웃 파일 내에서 적절한 헤더 정보를 설정하여 cakephp에서 평소처럼 레이아웃 내에서보기를 렌더링하려고했습니다. 그런 다음 출력 버퍼링을 시도하고 컨트롤러 작업 내에서 헤더 정보를 설정하려고했습니다. 그러나 같은 결과가 있습니다. ob_end_flush() 이후의 모든 것은 더 이상 실행되지 않습니다.

적어도 인덱스를 다시로드해야 버튼을 변경할 수 있으므로 사용자는 sucessfull 다운로드 후 필요한 작업을 수동으로 수행 할 수 있습니다.

이 목표를 달성 할 가능성이 있습니까?

대단히 감사합니다.

답변

0

아마도 두 개의 다른 헤더, 파일 다운로드 및 브라우저에 대한 한 요청에 응답 할 수 없습니다. 나는 그것에 대해 확신하지 못한다.

다른 해결책을 찾았습니다. 머리글을 추가하지 않고 변수에 뷰를 렌더링 할 수 있습니다. 첫 번째 단계에서 그 작업을 수행 한 다음 렌더링 된 페이지를 서버에 XML 파일로 저장합니다. 이 작업이 오류없이 완료되면 선택한 모든 레코드의 상태가 변경됩니다. 그런 다음 동일한보기를 다시 렌더링하지만 이번에는 다른 레이아웃에서 XML을 다운로드 할 헤더를 추가합니다. 이처럼 브라우저는 여전히 업데이트되지 않지만 적어도 모든 일이 올바르게 수행되고 올바르게 수행 될 수있는 몇 가지 컨트롤이 있습니다.

아마도이 답변은 비슷한 문제가있는 사람을 도울 수 있습니다.

관련 문제