Giter Club home page Giter Club logo

Comments (3)

weierophinney avatar weierophinney commented on June 4, 2024

I see you closed this; were you able to find a workaround? If so, could you post it here for others who find this issue?

Thanks!

from laminas-diactoros.

wuxue107 avatar wuxue107 commented on June 4, 2024

I rebuilt the requested body before sending it

        $request = ServerRequestFactory::fromGlobals();
 
        $stack = HandlerStack::create();
       // $stack->remove('http_errors');
        $stack->push(function($handler){
            return function(RequestInterface $request, array $options) use ($handler){
                $contentType = $request->getHeader('Content-Type')[0];
                if(!preg_match('#^multipart/form-data; boundary=(.*)#',$contentType,$matches)){
                    return $handler($request,$options);
                }

                $boundary = $matches[1];
                $elements = [];
                $files = $request->getUploadedFiles();
                $postFields = $request->getParsedBody();
                foreach($postFields as $name => $value){
                    $elements[] = [
                        'name' => $name,
                        'contents' => $value,
                    ];
                }
                foreach($files as $name => $file){
                    /** @var UploadedFile $file */
                    $elements[] = [
                        'name' => $name,
                        'contents' => $file->getStream(),
                        'filename' => $file->getClientFilename(),
                    ];
                }

                $multiStream = new MultipartStream($elements,$boundary);
                $request = $request->withBody($multiStream);

                return $handler($request,$options);
            };
        });
        // Create a guzzle client
        $guzzle = new \GuzzleHttp\Client([
            'handler' => $stack,
        ]);

from laminas-diactoros.

wuxue107 avatar wuxue107 commented on June 4, 2024

There are multiple file uploads and the post field not a string, which may need to be handled

from laminas-diactoros.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.