卷曲上传多个php://内存文件?

时间:2013-12-06 10:02:41

标签: php http memory curl upload

我创建了多个基于内存的文件,如下所示:

$fp1 = fopen("php://memory", 'rw+');
fputs($fp1, "hello1");
rewind($fp1);

$fp2 = fopen("php://memory", 'rw+');
fputs($fp2, "hello2");
rewind($fp2);

echo stream_get_contents($fp1);
echo stream_get_contents($fp2);

现在我希望CURL可以上传这些文件。我知道如何使用$post['file'] = "@large.jpg";对磁盘上存在的多个文件进行POST,但现在我的文件在内存中。

如何进行?

1 个答案:

答案 0 :(得分:2)

Afaik没有办法让cURL访问php://文件。我有一个类似的问题,我在操作系统级别创建了一个内存磁盘

Unix的:

mkfs -q /dev/ram1 8192
mkdir -p /ramcache
mount /dev/ram1 /ramcache

这样你仍然可以很容易地使用类似的构造用于php:// memory

$fp1 = fopen('/ramcache/somefile1', 'rw+');
$fp2 = fopen('/ramcache/somefile2', 'rw+');

但也将它作为真实文件传递给cURL,而不是将它从php://内存转换为真实文件,然后再传递给cURL