[Yii2] Visaulizzare PDF salvato in DB

Ciao a tutti, provo ad esporvi il mio problema

Utilizzo Yii2, IIS6 PHP P5.4 su Server Windows

Per problemi di compatibilità Windows Server 2003 devo utilizzare dei drive PDO SQL per Sql Server non ufficiali ma che sembrano comunque funzionare senza problemi.

Ho un database sql server 2005 con una tabella che contiene alcuni file PDF salvati direttamente come file binari in un campo di tipo image

Per visualizzare il file nel controller ho creato questa azione




    public function actionDisplay($id)

    {

        $model=$this->findModel($id);




        $response = Yii::$app->getResponse();

        $response->format = Response::FORMAT_RAW;


        $response->sendContentAsFile($model->allegato,$model->nome_allegato,['mimeType'=>$model->tipo_allegato,'inline'=>false]);

        return $response->send();


    }



Richiamando l’azione viene scaricato un file PDF con il nome corretto ma purtroppo il file risulta vuoto

L’unico modo in cui riesco a recuperare il file correttamente è con uno script in PHP senza utilizzare Yii utilizzando PDO::PARAM_LOB e PDO::SQLSRV_ENCODING_BINARY




$conn = new PDO($dsn, $username, $password);




$sql = "SELECT allegato FROM allegati WHERE ID_allegato = 12";





    $stmt = $conn->prepare($sql);

    $stmt->execute();

    $stmt->bindColumn(1,

        $file,

        PDO::PARAM_LOB,

        0,

        PDO::SQLSRV_ENCODING_BINARY);

    $stmt->fetch(PDO::FETCH_BOUND);

    header("Content-type:application/pdf");

    echo $file;



In questo modo il file viene recuperato correttamente.

Credo di aver capito che il problema sia nel modo in cui il file binario viene recuperato ma non ho proprio capito come posso utilizzare una query di questo tipo all’interno di Yii

Qualcuno mi può dare un consiglio?

Grazie in anticipo