2017-01-23 3 views
0

Ich versuche, eine BinaryFileResponse Antwort in einem Symfony-Controller zurückzukehren aber es fragt nach einem Pfad oder ein Datei Objekt. Die Sache ist, dass ich die Datei über einen SOAP Service erhalte, und es erzeugt ein Objekt wie dieses: filename + base64 encoded content + mime + extra stuff.in Symfony

Ich will nicht wirklich auf der Festplatte speichern, dann die Antwort erstellen ...

Vielleicht eine Datei in der Scheibe ohne die Schaffung ich im Moment geblendet, aber gibt es eine Möglichkeit, es zu senden?

Dies ist die Aktion:

public function downloadAction($hash){ 
    $document = $this->get('soap_services.document_service')->findDocument($hash); 

    return $this->file($SymfonyFileObjectOrPath, $fileName); 
} 

Das $document Objekt bietet die folgenden relevanten Methoden: getMime, getName, getContent.

Das ist, was ich verwenden möchte, um eine Antwort zu erstellen, ohne ein File Objekt (und die physische Datei, die es impliziert) zu erstellen.

+0

Sie können versuchen, eine physische Datei zu erstellen, aber im 'shm' ist es nur ein' vfs' im Speicher. –

Antwort

6

Hallo vielleicht sollten Sie überlegen, nur eine Antwort zu geben und den Download "manuell" zu erzwingen.

Vielleicht etwas wie das wird den Trick tun. Können Sie das versuchen, vielleicht ein bisschen ändern?

+0

Wow, es war offensichtlich, ich bin geblendet von der BinaryResponse ... das hat den Trick perfekt gemacht. – Astaroth