php的文件下载

it2022-05-05  162

 * 下载文件     *     * @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();    }

转载于:https://www.cnblogs.com/eterwei/p/3927825.html


最新回复(0)