zend-developer-tools icon indicating copy to clipboard operation
zend-developer-tools copied to clipboard

Whitespace Bleed

Open PatrickRose opened this issue 11 years ago • 7 comments

The toolbar bleeds 8 new lines into each response, which can cause issues (if, for example, you try and build a zip file then those 8 new lines will be included in that zip file causing it to be invalid).

Could this be fixed?

PatrickRose avatar Aug 19 '14 15:08 PatrickRose

@PatrickRose the toolbar should only interfere when the output is text/html. Could you elaborate a bit on this issue?

Ocramius avatar Aug 19 '14 15:08 Ocramius

I'd need to delve deep into our source code to try and find the issue involved with download (though I'll grab the person involved when they come in).

I can spot it in our API requests though, and although it's not a real issue there it does irk me slightly.

PatrickRose avatar Aug 20 '14 08:08 PatrickRose

Our download action uses the Zend\Http\Response\Stream object to stream the contents of the file, and we set the Content-Type to application/x-gzip.

PatrickRose avatar Aug 21 '14 07:08 PatrickRose

@PatrickRose Any update on this?

moderndeveloperllc avatar Jan 09 '15 15:01 moderndeveloperllc

I no longer work at the place where I encountered - but a message to the staff there says its still an issue.

PatrickRose avatar Jan 09 '15 17:01 PatrickRose

Just downloading the ZF2 application skeleton and adding a download action to the index controller w/ the mentioned stream and type isn't enough to reproduce the issue. I had Zend Developer Tools installed via Composer and in the application config.

    // This should be an array of module namespaces used in the application.
    'modules' => array(
        'Application',
        'ZendDeveloperTools',
    ),

Here's the code I used when I attempted to reproduce this issue.

    public function downloadAction()
    {
        $fileName = '/vagrant/somefile.tar.gz';
        $basename = basename($fileName);

        $response = new Stream();
        $response->setStream(fopen($fileName, 'r'));
        $response->setStatusCode(200);
        $response->setStreamName($basename);

        $headers = new Headers();
        $headers->addHeaders(array(
            'Content-Disposition' => 'attachment; filename="' . $basename . '"',
            'Content-Type' => 'application/x-gzip',
            'Content-Length' => filesize($fileName),
        ));
        $response->setHeaders($headers);
        return $response;
    }

I managed to download a working .tar.gz file. When I tested it using the answers in this StackOverflow question and compared it with various header parameters, the file still appeared to be fine when the Content-Disposition parameter was properly specified.

Barbarrosa avatar Feb 23 '15 02:02 Barbarrosa

This repository has been closed and moved to laminas/laminas-developer-tools; a new issue has been opened at https://github.com/laminas/laminas-developer-tools/issues/12.

weierophinney avatar Dec 31 '19 22:12 weierophinney