どうすればよいですか?私はfile_put_contents()を使用しようとしましたが、破損したファイルが作成されました。zendフレームワークのmssql dbからblob(type:image)をダウンロードする
これで、正しいヘッダーを含むビューを設定しようとしています。
<?php
header('Content-Type: image/jpeg');
header('Content-Transfer-Encoding: base64');
echo $this->dokument->Dokument;
この
は私のコントローラの内容です:public function imageAction()
{
$id = $this->_getParam('id');
$dokumentTabell = new Ordre_Model_Table_OrdreDokument();
$dokument = $dokumentTabell->find($id)->current();
$this->view->dokument = $dokument;
// disable layout and view
$this->view->layout()->disableLayout();
}
ここで最初の答えに応じてそれを編集した後、このエラーメッセージを表示します:PHPの致命的なエラー:メンバ関数setHttpResponseCodeに呼び出し()非オブジェクト上で... \アプリケーション\モジュール\ ordreの\コントローラ\ OrdreController.phpがライン上で45
は、ライン45はこれです:
->setHttpResponseCode(200)
残りのコード:
public function imageAction()
{
$id = $this->_getParam('id');
$dokumentTabell = new Ordre_Model_Table_OrdreDokument();
$dokument = $dokumentTabell->find($id)->current();
$this->view->dokument = $dokument;
$filename = $dokument->Name.".".$dokument->FileExtension;
// disable layout and view
$this->view->layout()->disableLayout();
$this->_helper->viewRenderer->setNoRender(true);
$this->getResponse()
->clearAllHeaders()
->clearBody()
->setHttpResponseCode(200)
->setHeader('Content-Type', 'image/jpeg')
->setHeader('Content-Length', strlen($dokument->Dokument))
->setHeader(
'Content-Disposition',
"attachment;filename=\"{$filename}\""
)
->setHeader('Last-Modified', $dokument->SistEndret)
->setBody($dokument->Dokument);
}
私が削除した場合はライン44: - >のclearBody()、コードが "作品"。私は正しい名前とほぼ正しいサイズのファイルを取得します。
:
私はおそらくのような何かをしたいですか? –
なぜbase64でエンコードされたデータを送信していますか?それは本当にbase64でエンコードされていますか? –
私が最後に試したことではありません。私はそれがあったはずだったのと同じサイズについて破損したファイルを取得します。 –