入门客AI创业平台(我带你入门,你带我飞行)
博文笔记

php curl 上传文件

创建时间:2014-08-22 投稿人: 浏览次数:14142
假设server端上传文件处理脚本upload.php:
<?php

print_r($_POST);
print_r($_FILES);

1、使用 CURL 默认的方法

//如果php文件是utf8编码,系统是GBK编码,那么就需要转下编码,要不然Php在系统中找不到这个文件  
$file = realpath(mb_convert_encoding("测试图片.JPG","GBK","utf8"));

$file = realpath("temp.jpg"); //要上传的文件  
$fields["f"] = "@".$file; // 前面加@符表示上传图片 

$ch =curl_init();


curl_setopt($ch,CURLOPT_URL,"http://localhost/upload.php");

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 =<<< "TEXT"
这里是文件内容,也可以是图片二进制,图片需要修改上传文件类型
TEXT;

$varname = "my";//上传到$_FILES数组中的 key
$name = "3.txt";//文件名
$type = "text/plain";//文件类型

$key = "$varname"; filename="$name
Content-Type: $type
";
$fields[$key] = $contents;



$ch =curl_init();


curl_setopt($ch,CURLOPT_URL,"http://localhost/upload.php");

curl_setopt($ch,CURLOPT_POST,true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $fields);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);


$content = curl_exec($ch);

echo $content;


声明:该文观点仅代表作者本人,入门客AI创业平台信息发布平台仅提供信息存储空间服务,如有疑问请联系rumenke@qq.com。