Skip to content

http context - allow content to be a stream/resource #19249

@rbro

Description

@rbro

Description

I am using file_get_contents with a HTTP context to POST a large request to a URL (https://www.php.net/manual/en/context.http.php). I noticed that the content field has to be a string:

<?php
$post_data = file_get_contents('data_to_send.txt');

file_get_contents('https://test.com/test.php', false, stream_context_create(array(
    'http' => array(
        'method' => 'POST',
        'header'  => array(
        	'Content-type: multipart/form-data',
        ),
        'content' => $post_data,
    )
)));
?>

Would it be possible to allow content to be a stream/resource so that I don't have to read in the file contents first? This would be similar to CURLOPT_INFILE which accepts a file handle resource like fopen.

The reason I'm trying to send data this way and not with curl is because of #15859. I'm trying to build my own multipart/form-data request per my comment there, as I'm connecting to an API that needs multiple files with the same name.

Thanks for your help.

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions