2012-05-16 4 views
1

젠드 프레임을 사용하고 있습니다. 내 응용 프로그램에 파일 다운로드 섹션을 포함시키고 싶습니다. 이 코드를 사용하고 있습니다.zendframe에서 다운로드 응용 프로그램을 작동하는 방법

> header('Content-Type: application/doc'); header('Pragma: no-cache'); 
> header('Content-Disposition: attachment; filename="'.$resume.'"'); 
> readfile(RESUME_PATH_WS . $resume); 

그러나이 코드는 작동하지 않습니다.이 파일은 0 바이트로 반환됩니다. 내가 단순히 HTML 측에서 젠드 프레임 워크

+0

? 문제가 될 수있는 10000 가지가 있으므로 최소한이를 좁히려 고 노력하십시오. – Corbin

+0

나는이 문제를 해결하기 위해 하루 만에 노력했지만 사용하지는 않았다. 이 사이트에 대해 더 자세히 알기를 권해주십시오. 매우 긴급한 문제 – meenakshi

+0

잘못된 모든 것을 확인하십시오. PHP 오류를 찾으십시오. 가능성이 있습니다. 내 생각 엔 당신의 readfile()이 실패했다. 경로를 확인해야한다는 의미입니다. 이런 문제가 생길 때마다 위에서 아래로 조각을 해부하여 어디서 실패했는지 알아낼 때까지 왜 실패했는지 알아 내야합니다. – Corbin

답변

1
 public function downloadAction() { 

      $this->_helper->layout->disableLayout(); 
      $this->_helper->viewRenderer->setNoRender(); 

      $filename = $this->_request->getParam('filename'); 

      $filePath = folder/path to file/ . $filename; 

      if (file_exists($filePath)) { 
       $fileName = basename($filePath); 
       $fileSize = filesize($filePath); 


       header("Cache-Control: private"); 
       header("Content-Type: application/stream"); 
       header("Content-Length: " . $fileSize); 
       header("Content-Disposition: attachment; filename=" . $fileName); 


       readfile($filePath); 
       exit(); 
      } else { 
       die('The provided file path is not valid.'); 
      } 
     } 

에서 파일을 다운로드하는 방법을 제발 도와주세요이 디버깅을 시도 무엇

<a href="path to your controller/downloadaction/filename/<name of file you want to download>">Download</a> 
+1

exit 및 die를 사용하면 disableLayout 및 setNoRender를 사용하는 목적을 상실 할 수 있습니다. 나는 그 (것)들을 남겨두고, 보통 원본 오류 메시지를 표시하기 대신에, 당신은 정상적인 위치 배치에있는 과실을 아직도 그릴 수 있었다 (상황에 따라서, 나는 예외를 던질지도 모르다 그것을 예외 제어기까지 거품이 일게 할지도 모르다) . – Corbin

+0

@ corbin 당신 말이 맞아요 .. "다운로드하는 방법"에 집중했습니다. – coolguy

+0

정확한 코딩을 사용하면 다음과 같은 오류가 나타납니다. 제공된 파일 경로가 유효하지 않습니다. 하지만 그 주어진 경로에 100 % 확실한 파일이 존재합니다 – meenakshi

관련 문제