首页 > 代码库 > php的文件下载
php的文件下载
* 下载文件
*
* @param string $downloadFile
* @param string $downloadName
*/
private function downLoad($downloadFile, $downloadName) {
header ( "Cache-Control: public" );
header ( "Content-Description: File Transfer" );
header ( ‘Content-disposition: attachment; filename=‘ . $downloadName ); // 文件名
header ( "Content-Type: application/zip" ); // zip格式的
header ( "Content-Transfer-Encoding: binary" ); // 告诉浏览器,这是二进制文件
header ( ‘Content-Length: ‘ . filesize ( $downloadFile ) ); // 告诉浏览器,文件大小
@readfile ( $downloadFile );
}
------------------------------------------------------------------------------------
/**
* 客户授信申请附件下载
*/
public function attachmentDownloadAction(){
$request = $this->getRequest();
$filePath = $request->getParam(‘filePath‘);
$filePath = Zend_Filter::filterStatic ( $filePath, ‘StringTrim‘ );
$filePath = Zend_Filter::filterStatic ( $filePath, ‘StripTags‘ );
$filePath = APPLICATION_PATH."/../public".$filePath;
$fileName = $request->getParam(‘fileName‘);
$fileName = Zend_Filter::filterStatic ( $fileName, ‘StringTrim‘ );
$fileName = Zend_Filter::filterStatic ( $fileName, ‘StripTags‘ );
$fileName = iconv("UTF-8", "GB2312", $fileName);
if (file_exists($filePath)) {
$this->attachmentDownload($filePath,$fileName);
} else {
throw new Member_Model_NotExist_Exception(‘附件不存在!‘);
}
}
private function attachmentDownload ($filePath,$fileName)
{
$file = file_get_contents($filePath);
$this->getResponse()
->setBody($file)
->setHeader(‘Content-Type‘, ‘application/octet-stream‘)
->setHeader(‘Content-Disposition‘,
‘attachment; filename="‘.$fileName.‘"‘)
->setHeader(‘Content-Length‘, strlen($file));
$this->_helper->layout->disableLayout();
$this->_helper->viewRenderer->setNoRender(true);
header(‘Set-Cookie: fileDownload=true; path=/‘);
$this->getResponse()->sendResponse();
}