导航:首页 > 文件教程 > phpcurl发送文件

phpcurl发送文件

发布时间:2023-09-09 13:11:08

1. 如何使用php+curl上传多媒体文件

$post_data = array(
"media"=>"E:\WORKS/yy.jpg"
);
$url="http://file.api.weixin.qq.com/cgi-bin/media/upload?access_token=$acctoken&type=image";
$ch = curl_init();
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_POSTFIELDS,$post_data);
ob_start();
curl_exec($ch);
$result = ob_get_contents() ;
ob_end_clean();

echo $result;

2. php curl 上传多文件,怎么弄

下面是一段示例代码

<?php
//注:PHP5.5.0起,文件上传建议使用CURLFile代替@
//多文件上传
$data=array(
'input_file[0]'=>newCURLFile('d:/1.txt','text/plain','testfile.txt'),
'input_file[1]'=>newCURLFile('d:/2.txt','text/plain'),
'input_file[2]'=>newCURLFile('d:/3.txt','text/plain'),
);
$ch=curl_init('http://demo.zjmainstay.cn/php/curl/curlUploadHandler.php');
curl_setopt($ch,CURLOPT_POST,1);
curl_setopt($ch,CURLOPT_POSTFIELDS,$data);
curl_exec($ch);

如果你的版本比较低,文件部分使用:

'input_file[0]'=>'@d:/1.txt',

这样既可。


我的博客《PHP cURL实现模拟登录与采集使用方法详解》对各类curl问题做了系统而详细的讲解,请参考“十、模拟上传文件”部分查看更多文件上传内容,如直接基于采集的文件内容进行上传等。

3. 请教用Curl 在php 里面模拟表单提交 文本+文件的写法


publicfunctioncurl($url,$postFields=null)
{
$ch=curl_init();
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_FAILONERROR,false);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
if($this->readTimeout){
curl_setopt($ch,CURLOPT_TIMEOUT,$this->readTimeout);
}
if($this->connectTimeout){
curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,$this->connectTimeout);
}
//https请求
if(strlen($url)>5&&strtolower(substr($url,0,5))=="https"){
curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,false);
curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,false);
}

if(is_array($postFields)&&0<count($postFields))
{
$postBodyString="";
$postMultipart=false;
foreach($postFieldsas$k=>$v)
{
if("@"!=substr($v,0,1))//判断是不是文件上传
{
$postBodyString.="$k=".urlencode($v)."&";
}
else//文件上传用multipart/form-data,否则用www-form-urlencoded
{
$postMultipart=true;
}
}
unset($k,$v);
curl_setopt($ch,CURLOPT_POST,true);
if($postMultipart)
{
foreach($postFieldsas$k=>$v){
if("@"==substr($v,0,1)){
$tempffile=preg_replace('/^@/','',$v);
$advfield[$k]=newCURLFile($tempffile);
}else{
$advfield[$k]=$v;
}
}

curl_setopt($ch,CURLOPT_POSTFIELDS,$advfield);
unset($k,$v,$advfield);
//curl_setopt($ch,CURLOPT_POSTFIELDS,$postFields);//田村改
//curl_setopt($ch,CURLOPT_POSTFIELDS,['file'=>newCURLFile(realpath('image.png'))]);
}
else
{
curl_setopt($ch,CURLOPT_POSTFIELDS,substr($postBodyString,0,-1));
}
}
$reponse=curl_exec($ch);

if(curl_errno($ch))
{
thrownewException(curl_error($ch),0);
}
else
{
$httpStatusCode=curl_getinfo($ch,CURLINFO_HTTP_CODE);
if(200!==$httpStatusCode)
{
thrownewException($reponse,$httpStatusCode);
}
}
curl_close($ch);
return$reponse;
}

表单列表是 $postFields 传入参数

数组,如果有文件 ,就在数组的值 前面加@

已经做好的 集成类 的实现 其他类字段和方法没给出,写不下了。

但是大致的实现过程应该可以看懂了

4. PHP curl 上传大文件非常大慢,导致超时,小文件(10M以下)的还可以,请问如何解决啊!

修改超时限制:
ini_set('max_execution_time','0');

阅读全文

与phpcurl发送文件相关的资料

热点内容
海康错误代码153 浏览:326
win10不停开关飞行模式 浏览:21
win10搜索应用程序 浏览:971
cdr2020免登录补丁是哪个文件夹 浏览:951
电脑查找重复文件 浏览:733
js转换浮点小数 浏览:445
生成网卡配置文件命令 浏览:963
07word工具 浏览:828
安卓哪里看1080 浏览:893
手机浏览器保存的网站如何恢复 浏览:330
mkv文件如何换声道 浏览:227
会plc编程能做点儿什么 浏览:208
保存文件时没有后缀 浏览:694
哪个头文件包含getchar 浏览:410
还没有备案怎么搭建网站 浏览:658
类风湿因子如何看懂数据 浏览:887
java时钟代码看不懂 浏览:596
plc密钥在哪个文件夹 浏览:847
良率是什么六西格玛数据类型 浏览:456
滴滴相关app有哪些 浏览:343

友情链接