❶ php curl 上传大文件非常大慢,导致超时,小文件(10M以下)的还可以,请问如何解决啊!
修改超时限制:
ini_set('max_execution_time','0');
❷ 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问题做了系统而详细的讲解,请参考“十、模拟上传文件”部分查看更多文件上传内容,如直接基于采集的文件内容进行上传等。
java中使用curl命令上传文件的使用方式如下:
curl -F "filename=@/home/test/file.tar.gz" http://localhost/action.php
如果使用了-F参数,curl就会以 multipart/form-data 的方式发送POST请求。-F参数以name=value的方式来指定参数内容,如果值是一个文件,则需要以name=@file的方式来指定。如果通过代理,上面的命令有可能会被代理拒绝,这时需要指定上传文件的MIME类型 curl -x myproxy.com:1080 -F "filename=@/home/test/file.tar.gz;type=application/octet-stream" http://localhost/action.php
另外,如果不上传文件,则可以使用 -d 参数,这时curl会以application/x-www-url-encoded 方式发送 POST 请求。
url -d "action=del&name=archer" -d "id=12" http://localhost/action.php
❹ PHP CURL 如何将一个网络图片上传至服务器
/*
*@通过curl方式获取指定的图片到本地
*@ 完整的图片地址
*@ 要存储的文件名
*/
function getImg($url = "", $filename = "")
{
//去除URL连接上面可能的引号
//$url = preg_replace( '/(?:^['"]+|['"/]+$)/', '', $url );
$hander = curl_init();
$fp = fopen($filename,'wb');
curl_setopt($hander,CURLOPT_URL,$url);
curl_setopt($hander,CURLOPT_FILE,$fp);
curl_setopt($hander,CURLOPT_HEADER,0);
curl_setopt($hander,CURLOPT_FOLLOWLOCATION,1);
//curl_setopt($hander,CURLOPT_RETURNTRANSFER,false);//以数据流的方式返回数据,当为false是直接显示出来
curl_setopt($hander,CURLOPT_TIMEOUT,60);
curl_exec($hander);
curl_close($hander);
fclose($fp);
Return true;
}
调用时,直接getImg("/logo.jpg","upload/image.jpg")
❺ php curl中CURLOPT_HTTPHEADER 这个参数的含义
php curl中CURLOPT_HTTPHEADER 这个参数的含义是:CURLOPT_HTTPHEADER 一个用来设置HTTP头字段的数组。Content-Type 表示后面的文档属于什么MIME类型。charset表示浏览器可接受的字符集。
HTTP头Servlet默认为text/plain,但通常需要显式地指定为text/html。由于经常要设置Content-Type,因此HttpServletResponse提供了一个专用的方法setContentType。
HTTP请求头的部分类型:
1、Accept:浏览器可接受的MIME类型。
2、Accept-Charset:浏览器可接受的字符集。
3、Accept-Encoding:浏览器能够进行解码的数据编码方式,比如gzip。Servlet能够向支持gzip的浏览器返回经gzip编码的HTML页面。许多情形下这可以减少5到10倍的下载时间。
4、Connection:表示是否需要持久连接。如果Servlet看到这里的值为“Keep-Alive”,或者看到请求使用的是HTTP 1.1(HTTP 1.1默认进行持久连接),它就可以利用持久连接的优点,当页面包含多个元素时(例如Applet,图片),显着地减少下载所需要的时间。
5、Content-Length:表示请求消息正文的长度。
6、Cookie:这是最重要的请求头信息之一。
(5)phpcurl上传图片扩展阅读:
PHP中的CURL函数库(部分):
1、curl_setopt_array — 为cURL传输会话批量设置选项
2、curl_setopt — 设置一个cURL传输选项
3、curl_close — 关闭一个cURL会话
4、curl__handle — 复制一个cURL句柄和它的所有选项
5、curl_errno — 返回最后一次的错误号
6、curl_error — 返回一个保护当前会话最近一次错误的字符串
7、curl_escape — 使用 URL 编码给定的字符串
在实际的使用当中,使用得最多的函数是curl_setopt — 设置一个cURL传输选项说明:bool curl_setopt ( resource $ch , int $option , mixed $value )其中,ch 由 curl_init() 返回的 cURL 句柄。option 表示的是需要设置的CURLOPT_XXX选项。
option的可选参数:
1、CURLOPT_BUFFERSIZE 每次获取的数据中读入缓存的大小,但是不保证这个值每次都会被填满。在cURL 7.10中被加入。
2、CURLOPT_CLOSEPOLICY 不是CURLCLOSEPOLICY_LEAST_RECENTLY_USED就是CURLCLOSEPOLICY_OLDEST,还存在另外三个CURLCLOSEPOLICY_,但是cURL暂时还不支持。
3、CURLOPT_CONNECTTIMEOUT 在发起连接前等待的时间,如果设置为0,则无限等待。
❻ php如何不通过提交表单的方式向服务器上传图片
action直接空,直接用submit按钮,点击不就提交到当前页面了额,<input id="submit1" name="submit1" type="button">你这个地方干嘛用button,用submit按钮额
❼ 如何使用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;
❽ php curl 上传多文件,怎么弄
下面是一段示例代码:
<?php
// 注: PHP 5.5.0起,文件上传建议使用CURLFile代替@
// 多文件上传
$data = array(
'input_file[0]' => new CURLFile('d:/1.txt', 'text/plain', 'testfile.txt'),
'input_file[1]' => new CURLFile('d:/2.txt', 'text/plain'),
'input_file[2]' => new CURLFile('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如何同时提交base64格式的图片和文本数据给接口
推荐用Snoopy。
https://github.com/uniqid/Snoopy
仅供参考。
❿ php 怎么接收curl上传文件
如果模拟没有出错的话,应该也是使用$_FILES接收上传的文件。
请参考我的博客《PHPcURL实现模拟登录与采集使用方法详解教程》
十、模拟上传文件