laminas / laminas-developer-tools

Module for developer and debug tools for use with laminas-mvc applications.
BSD 3-Clause "New" or "Revised" License
23 stars 13 forks source link

Whitespace Bleed #12

Closed weierophinney closed 4 years ago

weierophinney commented 4 years ago

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?


Originally posted by @PatrickRose at https://github.com/zendframework/zend-developer-tools/issues/162

weierophinney commented 4 years ago

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


Originally posted by @Ocramius at https://github.com/zendframework/zend-developer-tools/issues/162#issuecomment-52648732

weierophinney commented 4 years ago

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.


Originally posted by @PatrickRose at https://github.com/zendframework/zend-developer-tools/issues/162#issuecomment-52747796

weierophinney commented 4 years ago

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.


Originally posted by @PatrickRose at https://github.com/zendframework/zend-developer-tools/issues/162#issuecomment-52888441

weierophinney commented 4 years ago

@PatrickRose Any update on this?


Originally posted by @moderndeveloperllc at https://github.com/zendframework/zend-developer-tools/issues/162#issuecomment-69347135

weierophinney commented 4 years ago

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


Originally posted by @PatrickRose at https://github.com/zendframework/zend-developer-tools/issues/162#issuecomment-69370305

weierophinney commented 4 years ago

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.


Originally posted by @Barbarrosa at https://github.com/zendframework/zend-developer-tools/issues/162#issuecomment-75480818

samsonasik commented 4 years ago

I tried in latest laminas-developer-tools to download zip and tar.gz file, both working fine. I am closing it.