matengfei123

php采集图片,当参数名为"@绝对路径",这时 CURL 會幫你做 multipart/form-data 編碼

$img = file_get_contents(\'https://image.talicai.com/YmQzY2MyNWE4NGMzYjlhODA4ZTZiYTIyOTg1ZjRiMWM\');
file_put_contents(\'C:/test/1.jpg\', $img);

(PHP 5 <= 5.5.0)

$params = array(
    \'file\' => \'@/Pictures/753161072647248225.jpg\',
    \'file_1\' => \'@/Pictures/753161072647248225.jpg\',
    \'file_2\' => \'@/Pictures/753161072647248225.jpg\',
);

$ch = curl_init();
curl_setopt( $ch, CURLOPT_URL, $url );
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, 1 );
curl_setopt( $ch, CURLOPT_POST, true );
curl_setopt( $ch, CURLOPT_POSTFIELDS, $params );
$response = curl_exec($ch);

 

 

使用 CURLFile 类来处理文件,如下:(PHP 5 >= 5.5.0, PHP 7)

$url = \'http://127.0.0.1/test3.php\';
$file = __DIR__ .\'/0634134726bc5b8b.jpg\';
$data = array(\'mypic\'=>new CURLFile($file));
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
$content = curl_exec($curl);
curl_close($curl);
print_r($content);

 

还可以这样写

< form action =“< ;?php echo $ _SERVER [\'PHP_SELF\'];?>“ method =“post”enctype =“multipart / form-data”> 
< label for =“file”>文件名:< / label> < input type =“file”name =“Filedata”id =“Filedata”/> 
< br /> 
< input type =“submit”name =“submit”value =“Submit”/> 
< / form> 
 
<?php 
 if($ _POST [\'submit\']){
 $ uploadDir =“/ uploads /”; 
 $ RealTitleID = $ _FILES [\'Filedata\'] [\'name\']; 
 $ ch = curl_init(“http://www.remotesite.com/upload.php”); 
 curl_setopt($ ch,CURLOPT_RETURNTRANSFER,true); 
 curl_setopt($ ch,CURLOPT_POST,1); 
 curl_setopt($ ch,CURLOPT_RETURNTRANSFER,true); 
 $ args [\'file\'] = new CurlFile($ _ FILES [\'Filedata\'] [\'tmp_name\'],\'file / exgpd\',$ RealTitleID); 
 curl_setopt($ ch,CURLOPT_POSTFIELDS,$ args); 
 $ result = curl_exec($ ch); 
} 
?> 

  

分类:

技术点:

相关文章: