导航:首页 > 文件教程 > 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发送文件相关的资料

热点内容
wps文字密码暴力破解软件 浏览:68
51单片机ds1302程序 浏览:973
学编程方面需要哪些优势 浏览:675
电脑太大的文件怎么上传微信 浏览:514
索尼lt26ixperias刷机教程 浏览:246
win10uefi文件下载 浏览:713
显示文件大小的软件 浏览:194
最早的soul聊天app是怎么样的 浏览:489
网络云盘大小 浏览:420
去美国准备什么app 浏览:461
米8如何复制u盘文件 浏览:523
导航的o文件是什么 浏览:435
Re旧版本下载 浏览:416
电子血压表怎么读数据 浏览:610
软件开发和编程哪个前景好 浏览:30
手机保存图片在相册里找不到文件 浏览:42
xp桌面图案保存哪个文件夹 浏览:136
dnf70版本红眼 浏览:484
越来越不懂两个版本 浏览:258
javabigdecimal位数 浏览:316

友情链接