使用curl上传多个文件

2023-11-23

如何使用数组上传多个文件CURLFile and curl_setopt?

使用数据数组,因为它会抛出错误(无法将数组转换为字符串)并且http_build_query上的数据会损坏CURLFile对象。

我必须上传的数据如下所示:

[
    'mode' => 'combine',
    'input' => 'upload',
    'format' => $outputformat,
    'files' => [
        [0] => CURLFile object,
        [1] => CURLFile object,
        [x] => ...
    ]
]

PHP 5.5+ 有一个不使用 CURLFile 创建文件的功能:curl_file_create.

您可以像这样上传多个文件:

<?php

$files = [
    '/var/file/something.txt',
    '/home/another_file.txt',
];

// Set postdata array
$postData = ['somevar' => 'hello'];

// Create array of files to post
foreach ($files as $index => $file) {
    $postData['file[' . $index . ']'] = curl_file_create(
        realpath($file),
        mime_content_type($file),
        basename($file)
    );
}

$request = curl_init('https://localhost/upload');
curl_setopt($request, CURLOPT_POST, true);
curl_setopt($request, CURLOPT_POSTFIELDS, $postData);
curl_setopt($request, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($request);

if ($result === false) {
    error_log(curl_error($request));
}

curl_close($request);

这将作为数组在服务器上接收file就像有张贴的表格一样,这是$_FILES:

Array
(
    [file] => Array
        (
            [name] => Array
                (
                    [0] => 1.txt
                    [1] => 2.txt
                )

            [type] => Array
                (
                    [0] => text/plain
                    [1] => text/plain
                )

            [tmp_name] => Array
                (
                    [0] => /private/var/folders/cq/7262ntt15mqdmylblg9p1wf80000gn/T/phpp8SsKD
                    [1] => /private/var/folders/cq/7262ntt15mqdmylblg9p1wf80000gn/T/php73ijEP
                )

            [error] => Array
                (
                    [0] => 0
                    [1] => 0
                )

            [size] => Array
                (
                    [0] => 6
                    [1] => 6
                )

        )

)

This is $_POST:

Array
(
    [somevar] => hello
)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用curl上传多个文件 的相关文章

  • php curl 使用 GET 发送变量 奇怪的结果

    我正在尝试调用远程站点上页面中的网址 决定使用curl 在远程站点上 url 变量显示为 REQUEST Array var1 gt val1 amp var2 gt val2 amp var3 gt val3 被调用的url是 http
  • 如何在laravel中注册后自动登录

    我在 laravel 中注册用户时遇到问题 user假设是包含所有数组元素的数组 同时自动登录以下代码结果false 数据库中保存的密码是hash make password user id this gt user model gt ad
  • setcookie with expire=0 浏览器关闭后不会过期

    我使用setcookie来制作一个过期 0的cookie 从 PHP 文档来看 link http php net manual en function setcookie php cookie 过期的时间 这是一个 Unix 时间戳 所以
  • PHP MongoDb 驱动程序:如何设置执行代码的超时

    我有以下代码 它在 MongoDb 端执行一段代码 mongoCode new MongoCode Some JS code db gt execute mongoCode array socketTimeoutMS gt 1000000
  • 如何在 PHP 的 HTML 页面中显示错误消息?

    我有以下登录表单 login php 其中要求输入用户名和密码
  • 将 cookie 设置为在当天结束时过期

    我想设置一个 cookie 并让它在一天结束时过期 这有效 但 24 小时后过期 setcookie route upgrade voted true time 86400 这不起作用 setcookie route upgrade vot
  • PHP 中标头的使用

    非常简单的问题 这两个 PHP 版本 5 标头调用中哪一个是 最好的 header Not Modified true 304 header HTTP 1 1 304 Not Modified 我很确定第一个是最多价的 但只是好奇如果在 H
  • 在 PHP 字符串中格式化 MySQL 代码

    是否有任何程序 IDE 可以在 PHP 字符串中格式化 MySQL 代码 例如 我使用 PHPStorm IDE 但它无法做到这一点 它对 PHP 和 MYSQL 执行此操作 但不适用于 php 字符串内的 MYSQL 我已准备好使用新的
  • 如何在 Windows 上安装 Zend 框架

    安装 Zend Framework 就是这么简单 是的 对 好吧 我正在写一本初学者的书 有一件不太详细的事情是最重要的部分 安装该死的东西 浏览了几个小时的快速入门指南后 它只说 下载 Zend 添加包含目录 bla bla 然后就完成了
  • Nginx 502 网关错误。通过增加buffer来解决。为什么?

    我正在设置 LEMP 堆栈来运行 Drupal 我安装了 Nginx 和 PHP FastCGI Nginx 工作正常 但任何运行 PHP 的尝试都会出现错误 502 Bad Gateway 谷歌很快发现 nginx 502 错误网关 ht
  • 如何在codeigniter中将上传图片比例限制为16:9?

    这是我用来上传图像的代码 this gt load gt library upload ext pathinfo file name PATHINFO EXTENSION img name now ext imgConfig upload
  • 带倒计时的php循环

    假设我从 400 开始计数器 我将如何执行一个向后运行直到 0 的 foreach 循环 伪代码 i 400 foreach SOMETHING do stuff i for i 400 i gt 0 i do stuff 其他方法 i 4
  • 如何使用更新资源控制器 laravel 4?

    我有带有索引 编辑 更新方法的客户控制器 Route resource customer CustomerController 控制器方法更新 public function update id echo id 我的 HTML 表单
  • 在Python中获取文件描述符的位置

    比如说 我有一个原始数字文件描述符 我需要根据它获取文件中的当前位置 import os psutil some code that works with file lp lib open path to file p psutil Pro
  • 雄辩的第一个 where 子句

    我想知道 Laravel 如何实现雄辩的语法 以便可以静态调用第一个 where 子句User where User where id 23 gt where email email gt first 他们有吗public static f
  • Jquery一键提交多个同名表单

    我有动态创建的循环表单 我需要一键提交所有表单 我正在遵循下面的代码 你能建议我怎么做吗 谢谢
  • session_start():无法解码会话对象

    我有时在使用 CodeIgniter 时遇到以下问题 错误 2019 03 05 19 57 26 gt 严重性 警告 gt session start 无法解码会话对象 会话已被销毁 system libraries Session Se
  • Laravel 搜索关系

    我有两个相关的模型 我正在尝试在产品中进行搜索 并且仅显示实际搜索结果 而不是找到该产品的类别的所有产品 我不想搜索任何类别 因为无论搜索什么或找到什么 类别都会始终显示 Example I have the following categ
  • PayPal 网关已拒绝请求。安全标头无效(#10002:安全错误 Magento

    在 magento 中增加 PayPal 预付款 我已填写 magento admin 中的所有凭据 但是当我进入前端并单击 pay pal 按钮时 它给出了 PayPal 网关已拒绝请求 安全标头无效 10002 安全错误 我用谷歌搜索了
  • PHP更改小数点分隔符

    在某些情况下 PHP 会在操作后更改小数点分隔符 下面是一个示例 为什么小数点分隔符变成 这是一个多语言网站 在西班牙语版本中 区域设置设置为西班牙语 es ES 小数点分隔符为 这就是为什么正在改变 解决方案是强制 LC NUMERIC

随机推荐

  • 如何用某种颜色突出显示树视图所选项目?

    我在 WPF 中有一个树视图 当我选择树视图项目时 我想要不同的颜色 简单触发TreeView ItemContainerStyle对于默认的 TreeView 模板没有帮助 对于标准模板突出显示是通过特定的背景更改来完成的TreeView
  • jQuery 可以解析存储在变量中的 HTML 吗?

    我使用 PHP 和 ajax 命令来获取外部网页的整个 HTML 内容 通过 PHPfile get contents 命令 并将该 HTML 传递到 JavaScript 变量中 一旦我将页面的 HTML 内容存储在变量中 我是否可以使用
  • 计算旋转矩形中最大的内接矩形

    我试图找到计算可包含在旋转矩形内的最大 面积 矩形的最佳方法 有些图片应该有助于 我希望 理解我的意思 输入矩形的宽度和高度是给定的 旋转角度也是给定的 输出矩形未旋转或倾斜 我正在走一条冗长的路线 我什至不确定它是否能处理极端情况 没有双
  • 模仿 Photoshop 混合效果,如乘法、叠加等

    我正在制作一个带有整页背景图像的网站 我想为侧栏创建一个背景图像 其作用类似于具有乘法作为混合模式的 Photoshop 图层 它只是一个具有 Photoshop 多层 行为 的蓝色表面 无法合并叠加层和图像 因为以其他屏幕比例 尺寸打开网
  • d3js 创建具有固定节点的力布局[关闭]

    Closed 这个问题需要细节或清晰度 目前不接受答案 我已经实现了这个http jsbin com omokap 3 edit 但是 我想取消图形的动态行为 例如在拖尾状态下 但这仅适用于单个节点 并将节点放置在从 json 获取的设置点
  • 使用 JPA 2 配置持久性和 orm

    我在 jBPM 项目中使用 Persistence 时遇到一些问题 我的配置是 jBPM 5 4 Hibernate JPA 2 我目前正在设置流程以通过 persistence xml 连接到具有持久性的数据库 我只是尝试将默认数据源 在
  • 在 SQL 中仅获取每天的多个条目中的最后一行

    我有一张桌子 类似于 Id Name EnteredOn Percentage 01 person1 2011 03 09 17 29 35 683 56 29 02 person1 2011 03 09 17 29 35 731 76 2
  • 如何获得一列包含连续且递增的数字,且不丢失任何数字?

    可能的重复 如何在 PostgreSQL 查询中显示行号 在 Postgresql 中使用标识符重新排序列 使用带有子选择的更新进行 PostgreSQL 记录重新排序 我只是问在 PostgreSQL 中是否存在这样的可能性 如果我有 5
  • Java 不产生正确的 AltGr 键事件

    I m pressing the AltGr key in my Java application but instead of receiving a KeyEvent with key code VK ALT GRAPH I get t
  • CUDA nvcc编译器设置Ubuntu 12.04

    我在 64 位 Ubuntu 12 04 机器上成功安装了 cuda 5 的 nvidia 驱动程序和工具包 但不是示例 即使我之前运行过 示例也无法安装 sudo apt get install freeglut3 dev build e
  • 获取可执行文件的路径

    我知道这个问题以前已经被问过 但我仍然没有看到令人满意的答案 或者明确的 不 这不能做到 所以我会再问一次 我想要做的就是以独立于平台的方式获取当前运行的可执行文件的路径 无论是绝对路径还是相对于调用可执行文件的位置的相对路径 我虽然 bo
  • 如何为 Java 程序创建 .msi 文件? (蚀)

    我有一个java项目 我希望将其打包并出售 如何创建 msi 文件来将我的程序安装到其他 Windows 计算机上 如果有任何教程 请指导我 如果 Eclipse 对如何创建 msi 文件有任何影响 我也会使用 Eclipse Thanks
  • 触发在 Windows 上运行的 1.5 JVM 的堆转储

    我正在尝试诊断 Sun One 9 1 应用程序服务器中的 PermGen 内存泄漏问题 为此 我需要获取 JVM 进程的堆转储 不幸的是 JVM 进程是在 Windows 上运行的 1 5 版本 显然 触发堆转储的方法都不支持该设置 我可
  • 一元运算符 ~ 在 numpy 中做什么?

    我使用 Python 的 numpy 发现了一行代码 如下所示 array 0 1 2 3 4 5 4 3 2 1 0 1 2 它给出了输出 array 1 2 3 4 5 6 5 4 3 2 1 0 1 一元运算符 是否采用数组并应用 A
  • 无法合并 dex Ionic 3

    上次我成功构建 但在添加了无法构建的页面数后 我确实搜索了很多该错误 但对我来说没有任何作用 例如 添加和删 除平台 离子科尔多瓦清洁 离子科尔多瓦构建 etc 运行时遇到以下错误 离子科尔多瓦构建Android 什么地方出了错 任务 执行
  • Eclipse 中的 Gradle 项目构建正常,但 java 文件显示编译错误

    这是我的第一个 Gradle 项目 我在用构建 Eclipse 插件对于 gradle 在我的构建 gradle文件 我应用了以下插件 apply plugin java apply plugin eclipse apply plugin
  • 从 iOS 中的 Twitter 帐户获取关注者和关注者 [关闭]

    很难说出这里问的是什么 这个问题模棱两可 含糊不清 不完整 过于宽泛或言辞激烈 无法以目前的形式合理回答 如需帮助澄清此问题以便重新打开 访问帮助中心 大家 如何从 iOS 中用户登录的 Twitter 帐户获取所有关注者和关注者 有没有相
  • KVO 和 NSMutableArray

    如何设置 KVO 键值观察 NSMutableArray 我希望在数组中出现更改时收到通知 我以前从未将 KVO 与数组之类的集合一起使用过 我想你会对以下问题的答案感兴趣这个问题 关键是你无法直接观察数组上的任何属性 数组只是存储 但是你
  • GHC 抱怨类型检查器强制执行的非详尽模式

    我有以下代码 LANGUAGE DataKinds GADTs TypeOperators data Vect v a where Nil Vect a Vec a gt Vect v a gt Vect v a instance Eq a
  • 使用curl上传多个文件

    如何使用数组上传多个文件CURLFile and curl setopt 使用数据数组 因为它会抛出错误 无法将数组转换为字符串 并且http build query上的数据会损坏CURLFile对象 我必须上传的数据如下所示 mode g