『壹』 使用CURL上传文件
近日再使用一个第三方接口的时候,使用curl调用一个上传文件的接老笑氏口。
再多次失败后,终于找到了真经!!!
言归正传~
PHP的cURL支持通过给CURL_POSTFIELDS传递关联数组(而不是字符串)来生成multipart/form-data的POST请求。
PHP的cURL支持通过在数组数据中,使用“@+文件全路径”的语法附加文件,供cURL读取上传。
这侍散与命令行直接调用cURL程序的语法是一致的:
php5.5开始引入了新的CURLFile类用来指向文件。CURLFile类也可以详细定义MIME类型、文件名等可能出现在multipart/form-data数据中的附加信息升橘。推荐使用CURLFile替代旧的@语法:
使用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绝对是个好东东。
『叁』 java里怎么使用curl命令上传文件
java中使用curl命令上传文件的使用方式如下:
curl -F "filename=@/home/test/file.tar.gz" http://localhost/action.php
如果使用了-F参数,curl就会以 multipart/form-data 的方式发送请求。-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 上传多文件,怎么弄
下面是一段示例代码:
<?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+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;
『陆』 怎么在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目录下。
『柒』 Linux运维命令Curl - 日常用法总结
在Linux系统中,curl是一个利用URL规则在命令行下工作的文件传输工具,可以说是一款很强大的http命令行工具。它支持文件的上传和下载操作,是综合传输工具,习惯上称url为下载工具。下面就日常运维中基于curl命令使用做下总结
一、Curl命令用法
1. curl语法和参数选项
# curl [option] [url]
curl常见参数
2. curl使用说明
curl是一种命令行工具,作用是发出网络请求,然后得到和提取数据,显示在"标准输出"(stdout)上面。它支持多种协议,下面说下curl命令的日常使用示例:
3. curl上传文件的用法(POST请求方式)
一般来说,我们都会用curl下载网页,但是curl上传文件则不常用。下面说下curl模拟"multipart/form-data"形式的form上传文件, 命令稍稍复杂些。
4. curl常用示例
5. curl命令的超时时间
二、Curl的GET、POST、PUT、DELETE请求
1. GET、POST、PUT、DELETE含义与区别
2. GET、POST、PUT、DELETE四种请求方式的curl访问
『捌』 curl传文件会自动结束吗
curl传文件一般是不会自动结束的。
cURL是一个利用URL语法在命令李春行下工作的文件传输工具,1997年首次发行。它支持文件上传和下载,所以是综合传输工具,但按传统,习惯称cURL为下载工具。cURL还包含了用于程序开发的libcurl。
cURL支持的通信协议有FTP、FTPS、HTTP、HTTPS、TFTP、SFTP、Gopher、SCP、Telnet、DICT、FILE、LDAP、LDAPS、IMAP、POP3、SMTP和RTSP。
PHP cURL函数:
PHP支持的由Daniel Stenberg创建的libcurl库允许你与各种的服务器使用各种类型的协议进行连接和通讯。libcurl支持http、https、ftp、gopher、telnet、dict、file和ldap协议。
libcurl同时也支持HTTPS认证、HTTP POST、HTTP PUT、 FTP 上数扰嫌传(这个也能通过PHP的FTP扩展完成)、HTTP 基于表单的上传、代薯手理、cookies和用户名+密码的认证。
『玖』 能否在linux下直接用curl命令发送文件内容
1、减号”-”就是代表标准输出/标准输入, “-”可以代替stdin和stdout
2、复制目录
tar cvf - /home/oracle | tar xvf - -C /opt
3、复制文件
tar cf - access.log |tar xf - -C /opt
4、cat id_rsa.pub |ssh [email protected] ‘cat - >> ~/.ssh/authorized_keys’
或者
cat a.txt |ssh [email protected] ‘cat - >> ~/a.txt’
『拾』 curl的用法
curl是一个利用URL语法在命令行方式下工作的文件传输工具。本文介绍了它的简单用法。
*******************************************************************************************************************************************************
curl是一个利用URL语法在命令行方式下工作的文件传输工具。
它支持很多协议:FTP, FTPS, HTTP, HTTPS, GOPHER, TELNET, DICT, FILE 以及 LDAP。
curl同样支持HTTPS认证,HTTP POST方法, HTTP PUT方法, FTP上传, kerberos认证, HTTP上传, 代理服务器, cookies, 用户名/密码认证, 下载文件断点续传, 上载文件断点续传, http代理服务器管道( proxy tunneling), 甚至它还支持IPv6, socks5代理服务器, 通过http代理服务器上传文件到FTP服务器等等,功能十分强大。
Windows操作系统下的网络蚂蚁,网际快车(FlashGet)的功能它都可以做到。准确的说,curl支持文件的上传和下载,所以是一个综合传输工具,但是按照传统,用户习惯称curl为下载工具。
curl是瑞典curl组织开发的,您可以访问: http://curl.haxx.se/
获取它的源代码和相关说明。
鉴于curl在Linux上的广泛使用,IBM在AIX Linux Toolbox的光盘中包含了这个软件,并且您可以访问IBM网站:
http://www- 1.ibm.com/servers/aix/procts/aixos/linux/altlic.html 下载它。
curl的最新版本是 7.10.8,IBM网站上提供的版本为7.9.3。
在AIX下的安装很简单,IBM网站上下载的rpm格式的包。
在 http://curl.haxx.se/docs/,您可以下载到UNIX格式的man帮助,里面有详细的curl工具的使用说明。
curl的用法为:curl [options] [URL...]
其中options是下载需要的参数,大约有80多个,curl的各个功能完全是依靠这些参数完成的。
具体参数的使用,用户可以参考curl的man帮助。
下面,本文就将结合具体的例子来说明怎样利用curl进行下载。
1、获得一张页面
使用命令:curl http://curl.haxx.se
这是最简单的使用方法。用这个命令获得了http://curl.haxx.se指向的页面,同样,如果这里的URL指向的是一个文件或者一幅图都可以直接下载到本地。如果下载的是HTML文档,那么缺省的将不显示文件头部,即HTML文档的header。要全部显示,请加参数 -i,要只显示头部,用参数 -I。任何时候,可以使用 -v 命令看curl是怎样工作的,它向服务器发送的所有命令都会显示出来。为了断点续传,可以使用-r参数来指定传输范围。
2、表单(Form)的获取
在WEB页面设计中,form是很重要的元素。Form通常用来收集并向网站提交信息。提交信息的方法有两种,GET方法和POST方法。先讨论GET方法,例如在页面中有这样一段:
<form method="GET" action="junk.cgi">
<input type=text name="birthyear">
<input type=submit name=press value="OK">
</form>
那么浏览器上会出现一个文本框和一个标为“OK”的按钮。按下这个按钮,表单就用GET方法向服务器提交文本框的数据。
例如原始页面是在 www.hotmail.com/when/birth.html看到的,然后您在文本框中输入1905,然后按OK按钮,那么浏览器的URL现在应该是:“www.hotmail.com/when/junk.cgi?birthyear=1905&;press=OK”
对于这种网页,curl可以直接处理,例如想获取上面的网页,只要输入:
curl "www.hotmail.com/when/junk.cgi?birthyear=1905&;press=OK"
就可以了。
表单用来提交信息的第二种方法叫做POST方法,POST方法和GET方法的区别在于GET方法使用的时候,浏览器中会产生目标URL,而POST不会。类似GET,这里有一个网页:
<form method="POST" action="junk.cgi">
<input type=text name="birthyear">
<input type=submit name=press value="OK">
</form>
浏览器上也会出现一个文本框和一个标为“OK”的按钮。按下这个按钮,表单用POST方法向服务器提交数据。
这时的URL是看不到的,因此需要使用特殊的方法来抓取这个页面:
curl -d "birthyear=1905&press=OK" www.hotmail.com/when/junk.cgi
这个命令就可以做到。
1995年年末,RFC 1867定义了一种新的POST方法,用来上传文件。主要用于把本地文件上传到服务器。此时页面是这样写的:
<form method="POST" enctype='multipart/form-data' action="upload.cgi">
<input type=file name=upload>
<input type=submit name=press value="OK">
</form>
对于这种页面,curl的用法不同:
curl -F upload=@localfilename -F press=OK URL
这个命令的实质是将本地的文件用POST上传到服务器。
有关POST还有不少用法,用户可以自己摸索。
3、使用PUT方法。
HTTP协议文件上传的标准方法是使用PUT,此时curl命令使用-T参数:
curl -T uploadfile www.uploadhttp.com/receive.cgi
4、有关认证。
curl可以处理各种情况的认证页面,例如下载用户名/密码认证方式的页面(在IE中通常是出现一个输入用户名和密码的输入框):
curl -u name:password www.secrets.com
如果网络是通过http代理服务器出去的,而代理服务器需要用户名和密码,那么输入:
curl -U proxyuser:proxypassword http://curl.haxx.se
任何需要输入用户名和密码的时候,只在参数中指定用户名而空着密码,curl可以交互式的让用户输入密码。
5、引用。
有些网络资源访问的时候必须经过另外一个网络地址跳转过去,这用术语来说是:referer,引用。
对于这种地址的资源,curl也可以下载:
curl -e http://curl.haxx.se daniel.haxx.se
6、指定用户客户端。
有些网络资源首先需要判断用户使用的是什么浏览器,符合标准了才能够下载或者浏览。
此时curl可以把自己“伪装”成任何其他浏览器:
curl -A "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)" URL
这个指令表示curl伪装成了IE5.0,用户平台是Windows 2000。(对方服务器是根据这个字串来判断客户端的类型的,所以即使使用AIX也无所谓)。
使用:
curl -A "Mozilla/4.73 [en] (X11; U; Linux 2.2.15 i686)" URL
此时curl变成了Netscape,运行在PIII平台的Linux上了。
7、COOKIES
Cookie是服务器经常使用的一种记忆客户信息的方法。如果cookie被记录在了文件中,那么使用命令:
curl -b stored_cookies_in_file www.cookiesite.com
curl可以根据旧的cookie写出新cookie并发送到网站:
curl -b cookies.txt -c newcookies.txt www.cookiesite.com
8、加密的HTTP——HTTPS。
如果是通过OpenSSL加密的https协议传输的网页,curl可以直接访问:
curl https://that.secure.server.com
9、http认证。
如果是采用证书认证的http地址,证书在本地,那么curl这样使用:
curl -E mycert.pem https://that.secure.server.com
参考读物和注意事项:
curl非常博大,用户要想使用好这个工具,除了详细学习参数之外,还需要深刻理解http的各种协议与URL的各个语法。
这里推荐几个读物:
RFC 2616 HTTP协议语法的定义。
RFC 2396 URL语法的定义。
RFC 2109 Cookie是怎样工作的。
RFC 1867 HTTP如何POST,以及POST的格式。
文字
curl是免费软件,IBM公司对curl不提供技术支持。
curl官方网站:
http://curl.haxx.se