`
javayestome
  • 浏览: 1050593 次
  • 性别: Icon_minigender_2
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

curl模拟表单上传文件及一些设置(亲自实践)

 
阅读更多

curl模拟表单上传文件及一些设置

准备两个文件,
========curl.php与curl_post.php文件====

------------------curl.php文件内容
<?php
// 初始化
$ch = curl_init();

// 要上传的本地文件地址"@F:/xampp/php/php.ini"上传时候,上传路径前面要有@符号
$furl = "@F:/xampp/php/php.ini";
$post_data = array (
"upload" => $furl
);

//CURLOPT_URL 是指提交到哪里?相当于表单里的“action”指定的路径
$url = "http://localhost/test/curl/curl_post.php";

// 设置变量
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 0);//执行结果是否被返回,0是返回,1是不返回
curl_setopt($ch, CURLOPT_HEADER, 0);//参数设置,是否显示头部信息,1为显示,0为不显示

//伪造网页来源地址,伪造来自百度的表单提交
curl_setopt($ch, CURLOPT_REFERER, "http://www.baidu.com");

//表单数据,是正规的表单设置值为非0
curl_setopt($ch, CURLOPT_POST, 1);

curl_setopt($ch, CURLOPT_TIMEOUT, 1);//设置curl执行超时时间最大是多少

//使用数组提供post数据时,CURL组件大概是为了兼容@filename这种上传文件的写法,
//默认把content_type设为了multipart/form-data。虽然对于大多数web服务器并
//没有影响,但是还是有少部分服务器不兼容。本文得出的结论是,在没有需要上传文件的
//情况下,尽量对post提交的数据进行http_build_query,然后发送出去,能实现更好的兼容性,更小的请求数据包。
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);

// 执行并获取结果
$output = curl_exec($ch);
if($outopt === FALSE)
{
echo "<br/>","cUrl Error:".curl_error($ch);
}
// 释放cURL句柄
curl_close($ch);
?>
---------

----------curl_post.php
<?php
echo "<pre>";
var_dump($_FILES);
?>

-----------
结果如下:
array(1) {
["upload"]=>
array(5) {
["name"]=>
string(7) "php.ini"
["type"]=>
string(24) "application/octet-stream"
["tmp_name"]=>
string(24) "F:\xampp\tmp\phpB2D1.tmp"
["error"]=>
int(0)
["size"]=>
int(46217)
}
}

分享到:
评论

相关推荐

    php curl模仿form表单提交图片或文件

    TP5的`curl`方法封装了cURL操作,使得文件上传更加方便。以下是一个使用TP5的示例: ```php $data = [ 'file' =&gt; '@'.realpath('path/to/your/file.jpg'), ]; $result = \think\facade\Http::post('...

    phpCurl请求工具,可模拟表单、上传文件

    通用的http请求工具,可以模拟表单提交、上传文件、发送请求、获取网页内容

    go gin web框架文件上传,可以使用curl进行上传文件

    下面是如何使用curl上传文件的示例: ```bash curl -X POST -F 'file=@/path/to/your/local/file' http://localhost:8080/upload ``` 在这个命令中,`-X POST`指定使用POST方法,`-F 'file=@/path/to/your/local/...

    php使用curl模拟浏览器表单上传文件或者图片的方法

    以下是一个使用cURL上传文件的PHP代码示例: ```php header('Content-type:text/html; charset=utf-8'); // 设置页面编码 $ch = curl_init(); $url = 'https://xxx.com/api/mobile/auto_upload.php?uid=9705459';...

    PHP实现通过CURL上传文件功能示例

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

    Curl实现Get下载zip文件、post上传zip文件、普通post请求等

    通过`CURLOPT_POSTFIELDS`选项设置POST数据,对于文件上传,通常需要将文件读取到内存中,然后传递给Curl。Curl会自动处理文件内容的编码和传输。同时,可能还需要设置`Content-Type`为`multipart/form-data`来表明...

    C++使用libcurl提供的API上传文件且Post表单数据

    在这个场景中,我们将深入探讨如何利用libcurl在C++中上传文件并发送POST表单数据。 首先,`con_test.cpp`是主要的源代码文件,它包含了使用libcurl进行文件上传和POST操作的具体实现。`StdAfx.cpp`和`StdAfx.h`是...

    PHP使用curl模拟post上传及接收文件的方法

    2. 文件上传的实现:在PHP中使用cURL上传文件通常需要设置几个重要的选项。CURLOPT_URL指定了文件上传的目标地址。CURLOPT_POST选项需要被设置为1,以指明这是一个POST请求。CURLOPT_POSTFIELDS用于指定发送的数据,...

    qt5使用curl实现文件下载的示例程序

    在代码中,需要创建一个cURL对象,通过设置选项(如URL、文件保存路径等)来初始化下载任务。例如,可以使用`curl_easy_init()`初始化cURL会话,然后使用`curl_easy_setopt()`设置不同的选项。 3. **文件下载过程*...

    windows下的CURL上传下载图片

    本教程将详细介绍如何在Windows上使用C++和CURL库来实现图片的上传与下载。 首先,你需要下载并安装CURL库。CURL库提供了多种编程语言的接口,包括C++,可以在其官方网站找到最新版本的源码包。安装过程中,确保...

    ownCloud java使用curl上传文件

    服务器上传文件到ownCloud私有云,java调用curl上传,代码简单

    curl 文件传输工具

    `curl`不仅可以用来下载网页内容,还可以上传文件、执行POST请求、处理HTTP头、进行文件传输等多种任务,是网络编程和自动化脚本中的常用工具。 在`curl`中,你可以通过指定URL来访问网络资源,例如,下载一个网页...

    CURL HTTP POST方式表单递交

    1、使用的是curl库,数据采用http post方式表单递交 2、里面有完整的注释,比较规则的代码结构,适合学习交流 3、是控制台程序 4、我也是用到了curl但网上的资料大部分比较松散,我自己实现后分享给大家,相互学习,...

    curl实现ftp上传下载

    3. **设置上传选项**:使用`CURLOPT_UPLOAD`选项开启上传模式,并使用`CURLOPT_READFUNCTION`和`CURLOPT_READDATA`指定读取本地文件的数据源。 4. **执行请求**:调用`curl_easy_perform()`执行FTP上传操作。 5. *...

    php利用curl模拟登录

    curl是一个利用URL语法在命令行方式下工作的文件传输工具。该资源通过具体实例模拟页面登录。curl使用基本过程:第一步:使用curl_init()进行初始化,第二步:使用curl_setopt()函数进行设置选项,第三步:使用curl_...

    PHPcurl模拟IP浏览器请求

    在cURL中,我们可以使用`curl_setopt()`函数设置请求头,以模拟不同浏览器的请求。例如,要模仿Chrome浏览器的请求,我们可以这样设置: ```php curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT ...

    curl 实现SFTP上传和url Post Json信息

    在本教程中,我们将探讨如何利用 `curl` 实现 SFTP(Secure File Transfer Protocol)上传以及向 URL 发送 POST 和 GET 请求,并处理 JSON 数据。 ### 1. 使用 `curl` 进行 SFTP 上传 SFTP 是基于 SSH 的文件传输...

    libcurl 提交post表单数据 上传图片 demo

    libcurl 是一个强大的开源库...通过libcurl,你可以灵活地模拟各种HTTP请求,实现复杂的网络交互功能,包括提交表单和上传文件。理解并熟练运用这些概念,将有助于你在开发需要与服务器交换数据的应用时更高效地工作。

Global site tag (gtag.js) - Google Analytics