Rumah  >  Artikel  >  php教程  >  php curl 上传文件

php curl 上传文件

大家讲道理
大家讲道理asal
2016-11-08 14:23:261386semak imbas

假设server端上传文件处理脚本upload.php:

<?php
 
print_r($_POST);
print_r($_FILES);
?>

1、使用 CURL 默认的方法



//如果php文件是utf8编码,系统是GBK编码,那么就需要转下编码,要不然Php在系统中找不到这个文件 
$file = realpath(mb_convert_encoding(&#39;测试图片.JPG&#39;,&#39;GBK&#39;,&#39;utf8&#39;));
 
$file = realpath(&#39;temp.jpg&#39;); //要上传的文件 
$fields[&#39;f&#39;] = &#39;@&#39;.$file; // 前面加@符表示上传图片
 
$ch =curl_init();
 
 
curl_setopt($ch,CURLOPT_URL,&#39;http://localhost/upload.php&#39;);
 
curl_setopt($ch,CURLOPT_POST,true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $fields);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
 
 
$content = curl_exec($ch);
 
echo $content;

2、另类的做法,有时我们需要将动态产生的内容当做文件上传到远程服务器,却又不想在本地服务器中构建临时文件。这样就有了这个另类的写法

$contents =<<< &#39;TEXT&#39;
这里是文件内容,也可以是图片二进制,图片需要修改上传文件类型
TEXT;
 
$varname = &#39;my&#39;;//上传到$_FILES数组中的 key
$name = &#39;3.txt&#39;;//文件名
$type = &#39;text/plain&#39;;//文件类型
 
$key = "$varname\"; filename=\"$name\r\nContent-Type: $type\r\n";
$fields[$key] = $contents;
 
 
 
$ch =curl_init();
 
 
curl_setopt($ch,CURLOPT_URL,&#39;http://localhost/upload.php&#39;);
 
curl_setopt($ch,CURLOPT_POST,true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $fields);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
 
 
$content = curl_exec($ch);
 
echo $content;

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel sebelumnya:php 秒格式为天/小时/分钟/秒Artikel seterusnya:php简体繁体转换