广告
返回顶部
首页 > 资讯 > 后端开发 > PHP编程 >PHP如何通过CURL上传文件
  • 259
分享到

PHP如何通过CURL上传文件

php服务器开发语言 2023-09-01 20:09:54 259人浏览 泡泡鱼
摘要

PHP使用CURL上传文件只需发送一个POST请求就可以了,在请求中设置某个字段为需要上传的文件全路径,并且以“@”开头,然后使用CURL把该变量以POST方式发送到服务器,在服务端即可以从超级全局变量$_FILES中取到相应的上传文件信息

PHP使用CURL上传文件只需发送一个POST请求就可以了,在请求中设置某个字段为需要上传的文件全路径,并且以“@”开头,然后使用CURL把该变量以POST方式发送到服务器,在服务端即可以从超级全局变量$_FILES中取到相应的上传文件信息。

下面我们以一个例子来展示这个过程。

假设本地有一个文本文件log.txt,其路径为“/www/test/log.txt”,内容如下:

1

2

this is a file for test

hello pythonTab!

为了把这个文件上传给服务端的脚本Http://www.Pythontab.com/upload.php,我们在本地写了一个名为curl_file.php的脚本,内容如下:

1

2

3

4

5

6

7

8

9

10

11

12

13

 "bar",

//要上传的本地文件地址

"upload" = > "@/www/test/log.txt"

);

$ch = curl_init();

curl_setopt($ch , CURLOPT_URL , $url);

curl_setopt($ch , CURLOPT_RETURNTRANSFER, 1);

curl_setopt($ch , CURLOPT_POST, 1);

curl_setopt($ch , CURLOPT_POSTFIELDS, $post_data);

$output = curl_exec($ch);

curl_close($ch);

echo $output;

 ?>

curl_file.php的逻辑很简单,设置POST变量$post_data,其中upload指向需要发送的文件。这里要注意,我们之前使用POST都是发送一个字符串,然后在服务器端使用file_get_contents(“php//input”)来获取该字符串,和这里的用法不一样,其实POST也可以像GET一样,发送键值对。在服务端有一个超级全局变量$_POST可以像$_GET一样,获取相应的POST数据的值。需要注意的是,上传文件的变量不是存在着$_POST中,而是在$_FILES中。

为了展示服务端收到上述代码的文件上传请求的逻辑,我们在upload.php中写了以下代码:

1


upload.php首先使用var_export将$_FILES变量输出到标准输出,然后使用file_get_contents读取$_FILES[‘upload’][‘tmp_name’]所指文件的内容,并输出到标准输出,然后把$_FILES[‘upload’][‘tmp_name’]所指文件自制到当前目录的log_copy.txt文件中。该脚本的标准输出如下:

1

2

3

4

5

6

7

8

9

10

11

12

array(

 'upload' =>

     array(

     'name' => 'log.txt',

     'type' => 'application/octet-stream',

     'tmp_name' => '/tmp/phpLUB59F',

     'error' => 0,

     'size' => 36,

     )

 )

 this is a file for test

 hello PythonTab!

可以看到$_FILES变量中有一个upload数组,对应到上传文件描述信息,其中name和type分别表示名称和类型。tmp_name比较关键,服务端在接收到上传文件之后,会把文件写在一个临时文件中,这个临时文件的名字就是tmp_name的值,这也是为什么我们读取该文件可以获取一log.txt的文件内容。一般在服务端接收到上传文件后都需要立即读取该文件或者把文件复制到别外一个文件中,因为tmp_name所指的临时文件在服务端脚本执行完毕后会被删除掉,upload.php脚本的最后一行就是把临时文件复制到我们的目标文件中。

来源地址:https://blog.csdn.net/weixin_44353800/article/details/130739035

--结束END--

本文标题: PHP如何通过CURL上传文件

本文链接: https://www.lsjlt.com/news/389574.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • PHP如何通过CURL上传文件
    PHP使用CURL上传文件只需发送一个POST请求就可以了,在请求中设置某个字段为需要上传的文件全路径,并且以“@”开头,然后使用CURL把该变量以POST方式发送到服务器,在服务端即可以从超级全局变量$_FILES中取到相应的上传文件信息...
    99+
    2023-09-01
    php 服务器 开发语言
  • python如何通过http上传文件
    这篇文章主要介绍“python如何通过http上传文件”,在日常操作中,相信很多人在python如何通过http上传文件问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”python如何通过http上传文件”的疑...
    99+
    2023-06-20
  • 如何通过PHP脚本在Linux环境下进行文件上传
    在Web开发中,文件上传是一个常见的功能需求。PHP作为一种服务器端脚本语言,可以方便地处理文件上传操作。本文将详细介绍如何在Linux环境下使用PHP脚本进行文件上传,并给出具体的代码示例。首先,在Linux环境下,我们需要安装和配置PH...
    99+
    2023-10-21
    Linux PHP 脚本
  • PHP 和 JavaScript:如何通过文件传输数据?
    PHP 和 JavaScript 是两种常用的编程语言,它们能够实现各种各样的功能。本文将介绍如何通过文件传输数据,让 PHP 和 JavaScript 之间进行数据交互。 一、通过 PHP 上传文件 在 PHP 中,使用 $_FILES...
    99+
    2023-07-02
    spring 文件 javascript
  • php如何上传文件
    这篇文章主要介绍php如何上传文件,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!php有什么特点1、执行速度快。2、具有很好的开放性和可扩展性。3、PHP支持多种主流与非主流的数据库。4、面向对象编程:PHP提供了类...
    99+
    2023-06-14
  • 如何上传php文件
    这篇文章给大家分享的是有关如何上传php文件的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。php文件上传的步骤:首先创建一个文件上传表单;然后创建上传脚本“upload_file.php”文件;接着设置对文件上传...
    99+
    2023-06-14
  • 如何通过php函数来优化文件上传和下载功能?
    随着互联网的发展,文件上传和下载功能已经成为了许多网站和应用程序不可或缺的一部分。在PHP语言中,文件上传和下载是非常常见的需求。然而,如果不加以优化,这些功能可能会给服务器带来很大的负担,导致性能下降,甚至出现异常。本文将介绍一些通过PH...
    99+
    2023-10-21
    优化文件上传功能:PHP上传 优化文件下载功能:PHP下载 文件处理函数:PHP文件处理
  • python通过http上传文件思路详解
    这里主要是解决multipart/form-data这种格式的文件上传,基本现在http协议上传文件基本上都是通过这种格式上传 1 思路 一般情况下,如果我们往一个地址上传文件,则必...
    99+
    2022-11-12
  • 怎么通过FileZilla Client导入上传文件
    这篇文章给大家介绍怎么通过FileZilla Client导入上传文件,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。FileZilla是一种快速、可信赖的FTP客户端以及服务器端开放源代码程式,具有多种特色、直觉的接口...
    99+
    2023-06-16
  • SpringBoot如何通过配置文件(yml,properties)限制文件上传大小
    目录通过配置文件(yml,properties)限制文件上传大小properties类型配置文件设置yml类型配置文件设置设置文件上传大小限制--默认为1M解决方法通过配置文件(ym...
    99+
    2022-11-13
  • php如何上传pdf文件
    这篇文章主要介绍“php如何上传pdf文件”,在日常操作中,相信很多人在php如何上传pdf文件问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”php如何上传pdf文件”的疑惑...
    99+
    2022-10-19
  • PHP中怎么通过修改php.ini配置文件上传大小
    今天就跟大家聊聊有关PHP中怎么通过修改php.ini配置文件上传大小,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。php.iniphp.ini文件保存了php的一些重要属性,例如现...
    99+
    2023-06-20
  • php上传文件过大怎么解决
    在PHP上传文件过大时,可以通过以下方法解决:1. 修改php.ini配置文件:找到php.ini文件,将以下参数的值调整为合适的大...
    99+
    2023-10-18
    php
  • SpringBoot怎么通过配置文件限制文件上传大小
    这篇文章主要介绍SpringBoot怎么通过配置文件限制文件上传大小,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!通过配置文件(yml,properties)限制文件上传大小properties类型配置文件设置#&n...
    99+
    2023-06-29
  • php如何实现文件夹上传文件
    这篇“php如何实现文件夹上传文件”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“php如何实现文件夹上传文件”文章吧。一、什...
    99+
    2023-07-05
  • Android 通过TCP协议上传指定目录文件
    为了方便客户抓取Log,现通过TCP协议连接指定服务器,传输指定内容,定义指定目录,IP,PORT字段接收参数。直接上代码   public static void uplo...
    99+
    2022-06-06
    tcp协议 Android
  • Vue中通过minio上传文件的详细步骤
    目录1、minio的安装2、minio.js文件2.1连接minio2.2通过stream流上传2.3通过带预签名的url上传(最好是minio设置了链接永久访问)2.4删除对象补充...
    99+
    2022-09-27
  • Android通过HTTP协议实现上传文件数据
    本文实例为大家分享了Android通过HTTP协议实现上传文件数据的具体代码,供大家参考,具体内容如下 SocketHttpRequester.java package cn...
    99+
    2022-06-06
    HTTP 数据 上传文件 http协议 Android
  • PHP如何上传文件代码
    这篇文章将为大家详细讲解有关PHP如何上传文件代码,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。最主要的两个函数是move_uploade_file(临时文件,目标位置和文件名)和is_uploaded_...
    99+
    2023-06-17
  • PHP代码审计:文件上传(.user.ini)绕过
    upload-labs 05 源码: $is_upload = false;$msg = null;if (isset($_POST['submit'])) { if (file_exists(...
    99+
    2023-09-15
    1024程序员节 web安全 代码复审 网络安全
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作