我创建了多个这样的基于内存的文件:
$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";
发布磁盘上存在的多个文件,但现在我的文件在内存中。
如何进行?
最佳答案
据我所知,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,而无需在将其传递给 cURL 之前将其从 php://memory 转换为真实文件
关于php - curl上传多个php ://memory files?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20421064/