‘壹’ 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问题做了系统而详细的讲解,请参考“十、模拟上传文件”部分查看更多文件上传内容,如直接基于采集的文件内容进行上传等。
‘叁’ 怎么通过curl命令上传文件到OSS
python SDK中带了一个osscmd脚本,实现了大部分的OSS对外提供的接口功能,肯定比curl来得简单。
比如上传一个文件:
python osscmd put /your-file-path oss://你的bucket名字/
还支持上传目录,同时支持指定多个线程同时上传
python
osscmd uploadfromdir localdir oss://bucket/[prefix]
--check_point=check_point_file --replace=false --check_md5=false
--thread_num=5
如果用命令行的话,oss python sdk带的osscmd绝对是个好东东。
‘肆’ 如何用curl命令上传文件到制定的目录
把临时目录下的文件移动到目标上传目录
move_uploaded_file($file['tmp_name'], $filename)
‘伍’ 如何使用ftp用curl命令上传文件
使用ftp用curl命令上传文件方法:
第一种:
server端有现成的ftpserver:
上传的option是 -T
比如我们向ftp传一个文件: curl -T localfile -u name:passwd ftp://upload_site:port/path/
curl -T hadoop_oom.log -u user:1234567 ftp://1.1.1.1/
第二种:
nginx上传: (需要加上--with-http_dav_mole模块 )
./configure --prefix=/usr/local/nginx --user=www --group=www --with-http_stub_status_mole --with-http_ssl_mole --with-http_dav_mole
make && make install
要创建上传的临时目录
mkdir -p /dev/shm/client_body_temp
nginx http段加入:
client_body_temp_path /dev/shm/client_body_temp 1 2;
client_max_body_size 1024m; #这个根据实际的情况,如有大文件upload需要加大,不然nginx抛413 error
然后:
server
{
listen 80;
server_name 1.1.1.1;
index index.html index.htm index.php;
root html;
autoindex on;
dav_methods PUT; #这个是重点默认不允许PUT
测试:
curl -T hadoop_oom.log http://1.1.1.1/
安全注意事项:
一般需要单独location一个目录单独做upload用。或者这个nginx只做upload上传单一用途。
然后就是nginx allow了,一般机房都是内网打通的,只允许idc内网才能PUT。不然就能任意PUT到你的upload机器了。
‘陆’ 如何利用curl实现form表单提交 带文件上传
//上传D盘下的test.jpg文件,文件必须存在,否则curl处理失败且没有任何提示
$data=array('name'=>'Foo','file'=>'@d:/test.jpg');
注:PHP5.5.0起,文件上传建议使用CURLFile代替@
$ch=curl_init('http://localhost/upload.php');
curl_setopt($ch,CURLOPT_POST,1);
curl_setopt($ch,CURLOPT_POSTFIELDS,$data);
curl_exec($ch);
更多内容请参考:http://www.zjmainstay.cn/php-curl#十模拟上传文件
‘柒’ 怎么在windows使用curl 命令进行上传upload
linux curl是一个利用URL规则在命令行下工作的文件传输工具。它支持文件的上传和下载,所以是综合传输工具,但按传统,习惯称url为下载工具。
curl并不是双击即可运行,你需要在命令提示符下使用它
如何进入命令提示符
点击“开始”——“运行”——输入CMD
或,WIN+R,输入CMD
下载我下载版本的CURL后,解压后文件夹放在如:D:curl的文件夹里(curl路径)
命令提示符窗口中输入"d:"回车,然后输入“cd curl”即可跳转到curl文件夹,
至此可以输入curl命令了(根据你的curl类推)或你也可以将curl加入到系统环境变量如何将curl所在文件夹加入系统变量
右键单击“我的电脑”——“属性”——“高级”——“环境变量”——
“系统变量”——“Path”——“编辑”——加入“;D:curl”(注意分号,
D:curl换成你的curl路径)——“确定”加入到系统环境变量后可在命令提示符内直接运行如
“curl -O http://curl.haxx.se/download/curl-7.19.5-win32-ssl-sspi.zip”
这样的命令,无需进入curl所在文件夹curl命令用法!
实例演示:
curl 是一般linux发行版中都带有的小工具,利用这个工具可以很方便的下载文件,我一般使用这个工具来查看某个页面相应的HTTP头信息,在Windows系统中我们也一样可以使用这个工具,如果不需要支持https的话,那直接下载一个可执行文件即可
这个页面最底部有一个Windows下的下载链接,请选择不带SSL的版本,
否则还需要安装SSL的支持包。
解压后直接执行 curl.exe 即可(如不能直接运行,请使用cmd带路径执行curl.exe程序),如将改文件放入盘
C:curlcurl.exe.在cmd控制台为 C:curlcurl.exe --help
如果需要将cmd直接执行curl ,则可将curl.exe文件放入到C:WINDOWSsystem32目录下。
‘捌’ 怎么用python实现用curl命令来上传本地文件到服务器上而且上传以后的路径和文件名都被改了。希望详细点
上传就用pycurl,至于你说的上传后路径和文件名被改了那是服务端代码,不知道你什么意思?
‘玖’ java里怎么使用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