1. 使用curl进行ftp上传 为什么第二次报错curle
使用curl库,以post方式向服务器发送json数据 //json数据的组合可以参考jsoncpp库
2. libcurl ftp支不支持被动模式
使用虚拟主机的时候,往往需要使用FTP相关软件客户端上传网站文件,但是往往在连接FTP客户端过程出现这样或那样的问题.授人以鱼不如授人以渔,今天周良在这里将向大家详解关于FTP连接的两种模式,和大家一同分享,只要搞懂了FTP的连接过程,以后遇到相应的连接问题就可以轻松搞定了。
3. 如何使用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机器了。
4. 如何用curl命令上传文件到制定的目录
把临时目录下的文件移动到目标上传目录
move_uploaded_file($file['tmp_name'], $filename)
5. 如何用curl验证url或者ftp地址的有效性吗 - 技术问答
STATUS_CODE=`curl -o /dev/null -s -w %{http_code} ${your_url}`
如果是200,这表示url有效
6. 如何用curl实现ftp服务器
由于项目的需要,利用libcurl编写程序与ftp服务器通信,进行文件上传或下载,愈发地感到curl功能的强悍。
其实在命令行下直接使用curl命令就可以完成这些功能,但是需要获取上传下载行为的状态以便更好地控制。
7. 如果服务器端的ftp或http服务的端口号不是默认的21或80,如何使用curl命令下载文件
httpftp协议在使用默认端口的情况下,浏览器和ftp软件在没有设置情况下会自动尝试连接该服务的默认端口。如在服务器上修改了其服务的默认端口,你在尝试使用该服务的客户机上必须指定特定的端口号,匹配你服务器所设定的。
例如linux下使用apache创建了虚拟站点(服务器),并使用了88端口你在访问这个虚拟站点就必须指定端口号,如
"http://virtual.website.com:88/path"
#:80在网址后添加分号并指定端口号。其后可以指定网站的路径和页面,一般不指定。
linux环境下常用apache架设web服务器(至少我的是=ω=),修改httpd.conf中的默认监听端口Listen80#
如若是虚拟站点需修改
NameVirtualHost*:80
<VirtualHost*:80>
两项
至于ftp,由于不清楚你使用的是哪款软件驱动服务的,所以不做解释(无需必要,参考软件设置文档或告知软件名并提问)
PSvsftpd修改vsftpd.conf中的listen_port=21
8. 关于libcurl库如何在ftp上创建文件和文件夹
在你的curl_easy_perform函数执行之前加上这一句curl_easy_setopt(yourhandle, CURLOPT_FTP_CREATE_MISSING_DIRS, 1); 达到的效果是远程服务器如果没有这个目录,会自动创建然后上传文件到这个目录下面。你问的那个问题应该跟这个有些类似,建议你多看看头文件的定义和文档。