- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
“使用php curl上传文件”的答案有很多,而且都要求机器上存在物理文件。它是通过在 POST 字段中的文件名前引用 @ 符号来上传的。
但是,我的文件数据已经在一个 PHP 变量中:$data。如何直接上传而不需要先将其写入文件?
我试过这个:
$ch = curl_init();
curl_setopt_array($ch, [
CURLOPT_URL => SERVER_URL . '/test.php?abc=def&ghi=jkl',
CURLOPT_RETURNTRANSFER => 1,
CURLOPT_TIMEOUT => 120,
CURLOPT_POST => 1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => ['file' => $data],
CURLOPT_HTTPHEADER => ["Content-type: multipart/form-data"],
CURLOPT_HEADER => true,
CURLOPT_INFILESIZE => strlen($data)
]);
$response = curl_exec($ch);
但是我的服务器给出了一个错误,POST Content-Length 超过了 8388608 字节的服务器限制。但是,在我服务器上的 php.ini 文件中,我有 upload_max_filesize = 500M。所以看起来这个 POST 没有被视为多部分文件上传,而是试图将所有文件数据塞进 POST 请求。
感谢您的任何建议。
最佳答案
您可以先将字符串写入/tmp 文件夹中的文件。我不确定,但我认为如果您想发布文件,您可能需要这样做。 documentation说:
7.0.0 Support for disabling the CURLOPT_SAFE_UPLOAD option has been removed. All curl file uploads must use CURLFile.
编辑:请检查 docs on post_max_size :
post_max_size integer
Sets max size of post data allowed. This setting also affects file upload. To upload large files, this value must be larger than upload_max_filesize. Generally speaking, memory_limit should be larger than post_max_size...
关于PHP cURL - 如何通过 HTTP 请求将变量的内容作为文件上传?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54336747/
我有以下正则表达式 /[a-zA-Z0-9_-]/ 当字符串只包含从 a 到z 大小写、数字、_ 和 -。 我的代码有什么问题? 能否请您向我提供一个简短的解释和有关如何修复它的代码示例? //var
我是一名优秀的程序员,十分优秀!