1、使用 CURL 默认的方法
$file = realpath( gif/1.gif //要上传的文件$fields[ f ] = @ .$file;$ch = curl_init(); curl_setopt($ch, CURLOPT_URL, http://localhost/ajax_server.php?id=1 curl_setopt($ch, CURLOPT_POST, 1 );curl_setopt($ch, CURLOPT_POSTFIELDS, $fields);curl_exec ($ch); curl_close ($ch);
2、另类的做法,有时我们需要将动态产生的内容当做文件上传到远程服务器,却又不想在本地服务器中构建临时文件。这样就有了这个另类的写法
$contents = TEXT 数据报中应该是Content-Disposition: form-data; name= userfile filename= file_name Content-Type: 文档类型这样的格式,我只实现了文件名部分,文档类型不知道如何实现。这样上传后就取不到 type 的值curl_upload_server.php xmp ?phpprint_r($_FILES);echo 文件内容:/n $p = html' target='_blank'>current($_FILES);readfile($p[ tmp_name TEXT;$fields[ f filename= x.x ] = $contents; //这个关联键的写法很怪异吧?$ch = curl_init(); curl_setopt($ch, CURLOPT_URL, http://localhost/curl_upload_server.php curl_setopt($ch, CURLOPT_POST, 1 );curl_setopt($ch, CURLOPT_POSTFIELDS, $fields);curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);$s = curl_exec ($ch); curl_close ($ch); echo $s;
$contents = TEXT 上传文件在数据报中应该是Content-Disposition: form-data; name= userfile filename= file_name Content-Type: 文档类型这样的格式以下是服务器端代码curl_upload_server.php xmp ?phpprint_r($_FILES); //检查上传信息echo 文件内容:/n $p = current($_FILES);readfile($p[ tmp_name //输出上传的文件TEXT;$varname = my $name = 3.txt $type = text/plain $key = $varname/ filename=/ $name/r/nContent-Type: $type/r/n $fields[$key] = $contents;$ch = curl_init(); curl_setopt($ch, CURLOPT_URL, http://localhost/curl_upload_server.php curl_setopt($ch, CURLOPT_CUSTOMREQUEST, POST );curl_setopt($ch, CURLOPT_POSTFIELDS, $fields);curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);$s = curl_exec ($ch); curl_close ($ch); echo $s;
本文讲解了在 php 中通过 CURL 上传文件相关内容请关注php 。
相关推荐:
简易 PHP+MySQL 分页类
两个不用递归的树形数组构造函数
HTML转Excel,并实现打印,下载功能
以上就是在 php 中通过 CURL 上传文件的详细内容,PHP教程
郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。
新闻热点
疑难解答