나는 파일을 서버에 간단하게 저장하는 프로젝트를 가지고있다. 누군가 파일을 다운로드하려고 할 때 파일에 대한 보호 기능을 제공하기 위해 중간 컨트롤러 (Zend 프레임 워크)를 통해 요청을 전달해야합니다.왜이 PHP가 파일을 보내 데이터를 변조합니까?
누군가가 파일을 요청하면 파일은 클라이언트 브라우저로 다운로드됩니다. 모든 테스트에서 파일은 항상 손상되지만 (바이트에 맞는 크기 임에도 불구하고). 누군가 내가 여기서 잘못하고있는 것을 말해 줄 수 있습니까?
public function downloadAction() {
$this->_helper->layout->disableLayout();
$this->_helper->viewRenderer->setNoRender(true);
$files = new Application_Model_DbTable_Files();
$file = $files->getFileForDownload($this->_getParam('id'), Zend_Auth::getInstance()->getIdentity()->id);
$config = Zend_Registry::get('config');
$this->_helper->layout->disableLayout();
$this->_helper->viewRenderer->setNoRender();
if (file_exists($config['mindful']['path'] . $file)) {
$this->getResponse()->setHeader('Content-type', 'application/octet-stream');
$this->getResponse()->setHeader('Content-Disposition', 'inline; filename=' . basename($file), false);
$this->getResponse()->setBody(readfile($config['mindful']['path'] . $file));
}
}
내가 알기로 표준 PHP뿐만 아니라 Zend 메소드를 사용해 보았습니다. 이 두 가지 모두 저에게 같은 결과를줍니다.
미리 도움을 청하십시오! 많은 프레임 워크에 파일 다운로드에 문제가 발생할 수 있습니다
릭
아마도 캐릭터 인코딩 문제일까요? – Babblo
파일이 손상되었다고 어떻게 판단합니까? 파일의 종류는 무엇입니까? – datasage
어떻게 손상 되었습니까? 두 파일의 바이트 단위 비교를 수행 했습니까? –