【问题标题】:Call to undefined function curl_file_create() [file handling]调用未定义函数 curl_file_create() [文件处理]
【发布时间】:2013-08-21 16:54:51
【问题描述】:

我正在尝试使用 curl 上传文件,并且在 PHP 文档中它说:

要发布文件,请在文件名前加上 @ 并使用完整路径。文件类型可以通过使用格式为“;type=mimetype”的文件名来明确指定。此参数可以作为 urlencoded 字符串(如 'para1=val1&para2=val2&...')或作为字段名称作为键和字段数据作为值的数组传递。如果 value 是一个数组,则 Content-Type 标头将设置为 multipart/form-data。从 PHP 5.2.0 开始,如果文件以 @ 前缀传递给此选项,则 value 必须是数组。自 PHP 5.5.0 起,@ 前缀已弃用,可以使用 CURLFile 发送文件。

所以我尝试改用 CURLFile,但出现错误

调用未定义函数 curl_file_create()

所以 - 然后我尝试找到类 CURLFile var_dump(class_exists('curlfile'));

但它说它没有。 我想知道 - CURLFile 是必须手动安装的吗? 使用 @path/to/file;type=mime 会更好吗,即使它很快就会被弃用?

谢谢

到 clairy - curl 已安装并且可以工作。只是我的系统上似乎不存在文件处理的巨型机器。

我没有添加任何代码,因为没有要添加的代码。 我运行 curl_file_create() 并得到该函数不存在的答案,即使 curl 本身有效。

【问题讨论】:

    标签: php file-upload curl


    【解决方案1】:

    必须使用--with-curl 开关编译PHP 才能使用此功能。检查您的 phpinfo() 输出以验证您的 PHP 编译时使用的开关。

    如果您使用的是 Linux,请检查您的发行版的软件包,因为 Curl 支持可能由模块提供。 (例如,在 Debian 上必须安装 php5-curl 软件包。)


    请注意,curl_file_create() 是在 PHP 5.5.0 中添加的。如果您的 PHP 安装较旧,它将不支持此功能。

    【讨论】:

    • curl 工作得很好。只是文件处理没有。
    • @rm- 你的问题根本不清楚。显示一些代码以及您收到的错误以及在哪一行收到它会很有帮助,因为您的问题似乎表明您正在尝试使用您的 PHP 安装不支持的功能。在您的问题中,您没有提到您的问题与文件处理有关,并且您没有显示任何示例代码来表明您正在尝试什么。甚至您问题的 title 也具有误导性。
    • 标题正是问题所在。问题不在于代码或安装。并且由于我实际上还写了破坏的是 curlfile 而不是 curl 本身,因为我还询问了@path/to/file-part ...没关系。没有必要把它当作个人或任何东西。并且 - 我用 curl 更新了这个问题,它只是文件处理的问题。
    • 如果标题确实是问题,那么这意味着您的 PHP 安装不支持 Curl,正如我已经说过的。我不知道它 可能 还意味着什么,除非您使用的是不支持此特定功能的旧 PHP。你有什么版本的PHP?
    【解决方案2】:

    我不使用“curl_file_create”和“CurlFile”,我更喜欢使用“@/file_name_with_full_path”。

    查看参考链接并使用这些其他方法通过 POST 方法通过 CURL 通过 PHP 上传文件。

    Send a file via post with curl and PHP

    【讨论】:

    • 自 PHP 5.5 起,@ 前缀已弃用。
    【解决方案3】:

    如果您使用的是 xampp 或 wamp,则必须更新 php.ini 文件以启用 curl,因为 apache 在其使用的文件夹中有单独的 php.ini 文件。Web 服务器 php.ini 文件与 php.ini 文件不同。 ini 在 php 安装文件夹中。

    【讨论】:

      猜你喜欢
      • 2013-03-01
      • 2019-03-09
      • 2023-04-04
      • 1970-01-01
      • 1970-01-01
      • 2013-02-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多